6

データを分析して保存する重いスクリプトを作成していますが、コードのどの行がほとんどの時間を消費しているかを知る必要があります。Rubymineにはプロファイラー機能がありますか、それとも何らかの方法でプロファイラーを追加することは可能ですか?

4

2 に答える 2

2

私もそれを探していましたが、成功しませんでした。何か見つけたら、教えてください。

一方... Ruby自体には、あなたを助けることができる2つのモジュールがあります

ベンチマーク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 に答える