DIY Ruby CPU 分析——Part III
【编者按】作者 Emil Soman,Rubyist,除此之外竟然同时也是艺术家,吉他手,Garden City RubyConf 组织者。本文是 DIY Ruby CPU Profiling 的第二部分。本文系 OneAPM 工程师编译整理。 原文链接: http://crypt.codemancers.com/posts/2015-04-15-diy-ruby-cpu-profiling-part-iii/ 在第一部分我们了解到 仪表分析器如何工作 ,在第二部分我们学习到 如何使用 CPU time 和 Wall time 测量执行时间 。建议在继续学习之前先阅读一下那些内容。本章我们将应用学到的目前为止知识做一个很基础的仪表 CPU 分析器。 Part III. DIY 仪表 CPU 分析器 Ruby 的仪表盘 在第一部分,我们学到了仪表分析工具利用能够被分析工具安装或由语言自身提供的 hooks 来工作。幸运的是,Ruby 早就拥有这些 hooks 并且提供纤巧的 TracePoint 类来使用这些 hooks。 TracePoint API 执行代码时,Ruby VM 发送一系列事件到不同的节点。Ruby 允许利用 TracePoint 类进行事件回调。 TracePoint 的 API 文档列出了所有可以监听的事件,但我们只对下面两个感兴趣: :call ,当 Ruby