6

我创建了分析和存储数据的繁重脚本,我真的需要知道我的代码的哪些行大部分时间都在消耗。Rubymine 是否具有分析器功能,或者可能以某种方式向其中添加分析器?

4

2 回答 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'在您的脚本完成后,它会清除每个调用的数据。

检查此示例http://ruby.about.com/od/advancedruby/a/profile.htm

于 2013-06-17T10:17:22.857 回答
1

从 2019.1 版本开始,RubyMine 支持使用 RbSpy 进行分析。要分析脚本:

  1. (可选)在Settings/Preferences |上配置探查器设置 构建、执行、部署 | Ruby Profiler页面。
  2. 右键单击编辑器或项目视图中的脚本,然后选择 Run 'script name' with 'RbSpy profiler'

  3. 在Profiler工具窗口中分析结果。Flame Chart选项卡随时显示调用堆栈的状态。每个帧代表堆栈中的一个方法/块(堆栈帧)。在 Y 轴上,有一个自下而上的堆栈深度。X 轴显示从最耗时的方法/块到最不耗时的方法/块排序的堆栈。

您可以从Profile 应用程序帮助主题中了解更多信息。

于 2019-07-12T12:00:54.393 回答