我创建了分析和存储数据的繁重脚本,我真的需要知道我的代码的哪些行大部分时间都在消耗。Rubymine 是否具有分析器功能,或者可能以某种方式向其中添加分析器?
问问题
2307 次
2 回答
2
我也在寻找它,但没有成功。如果你发现了什么,请告诉我。
同时......在Ruby本身中有两个模块可以帮助你
基准测试- http://apidock.com/ruby/Benchmark
你做这样的事情
require 'benchmark'
n = 50000
Benchmark.bm(7) do |x|
x.report("for:") { for i in 1..n; a = "1"; end }
x.report("times:") { n.times do ; a = "1"; end }
x.report("upto:") { 1.upto(n) do ; a = "1"; end }
end
它会给你很好的分析结果表
user system total real
for: 1.050000 0.000000 1.050000 ( 0.503462)
times: 1.533333 0.016667 1.550000 ( 0.735473)
upto: 1.500000 0.016667 1.516667 ( 0.711239)
Profiler__ – http://apidock.com/ruby/Profiler__
使用此模块的最简单方法是require 'profile'
在您的脚本完成后,它会清除每个调用的数据。
于 2013-06-17T10:17:22.857 回答
1
从 2019.1 版本开始,RubyMine 支持使用 RbSpy 进行分析。要分析脚本:
- (可选)在Settings/Preferences |上配置探查器设置 构建、执行、部署 | Ruby Profiler页面。
右键单击编辑器或项目视图中的脚本,然后选择 Run 'script name' with 'RbSpy profiler'。
在Profiler工具窗口中分析结果。Flame Chart选项卡随时显示调用堆栈的状态。每个帧代表堆栈中的一个方法/块(堆栈帧)。在 Y 轴上,有一个自下而上的堆栈深度。X 轴显示从最耗时的方法/块到最不耗时的方法/块排序的堆栈。
您可以从Profile 应用程序帮助主题中了解更多信息。
于 2019-07-12T12:00:54.393 回答