一个针对 ruby 2.2+ 的采样调用堆栈分析器
一个针对 Ruby 的采样调用堆栈分析器。 它受到 gperftools 的深刻启发,并被编写为 perftools.rb 的替代品。
在您的 Gemfile 中添加:
gem 'stackprof'然后运行 $ bundle install。或者,您也可以运行 $ gem install stackprof。
在 Ruby 中:
StackProf.run(mode: :cpu, out: 'tmp/stackprof-cpu-myapp.dump') do
#...
end通过机架:
use StackProf::Middleware, enabled: true,
mode: :cpu,
interval: 1000,
save_every: 5报告:
…有关堆栈分析器 WebUI 报告的实验版本,请参阅 stackprof-webnav
要使用 Stackprof 生成火焰图,需要使用 raw: true 标志收集额外数据。一旦启用此标志后收集了结果,可以使用以下命令生成火焰图:
:wall (使用 ITIMER_REAL 和 SIGALRM) [默认模式] - :cpu (使用 ITIMER_PROF 和 SIGPROF) - :object (使用 RUBY_INTERNAL_EVENT_NEWOBJ) - :custom (通过 StackProf.sample 定义的用户定义)暂无开放 Issues,或尚未同步最近议题。