DIY Ruby CPU 分析——Part I
【编者按】原文作者 Emil Soman,Rubyist,除此之外竟然同时也是 艺术家,吉他手 ,Garden City RubyConf 组织者。本文是DIY Ruby CPU Profiling 的第一部分,由 OneAPM 工程师编译整理。 在 Codemancers,我们正在建设 Rbkit——一个针对 Ruby 语言的——拥有新炫酷功能的代码分析器。我目前正在实现一个嵌在 rbkit gem 里的 CPU 分析器,这将有助 rbkit UI 重建分析 Ruby 进程调用图,并在屏幕上得出有用的可视化展示。在这个过程中,我学到了许多新东西,很乐意在本系列的博客文章中与您分享。 我们打算一步一步从基础开始,专门为 Ruby 编写一个初级的 CPU 分析器!在完成时我们将学到: 什么是 CPU 分析 分析模式——工具和采样 CPU Time 和 Wall Time ——它们分别是什么意思,如何测量? 写一个简单的 C 扩展并用于 Ruby 中 Ruby Tracepoints——调用和返回 C 语言中的信号处理 用一个信号暂停 Ruby 进程并用调用堆查看 用分析数据进行一些有用但笨拙的试验 Part I. 介绍 CPU 分析 通过对你的程序进行 CPU 分析,可以发现相较于 CPU 使用率,你的程序是多么宝贵。为了分析程序,你需要使用一个分析工具并按照下列步骤操作: 开始