RubyProf入門です。
Rubyプログラムが遅い!ときは、やはりプロファイリングをとりましょう。
ここに書いてあるとおりですが: http://ruby-prof.rubyforge.org/
まずはインストールします。
gem install ruby-prof
続いて、調べる箇所にプロファイラーを埋め込みます。
require 'ruby-prof'
RubyProf.start
# 重そうな処理
result = RubyProf.stop
printer = RubyProf::FlatPrinter.new(result)
printer.print(STDOUT)
以上で、結果が一覧できます。
ところで、チュートリアル通りに
printer.print(STDOUT, 0)
とやると、
can't convert Symbol into Integer
といったエラーが出るので注意が必要です。
ドキュメントがまだ更新されていないようですね。第二引数は渡さないか、:min_percent => 0
などのハッシュを渡しましょう。
また、FlatPrinter
をGraphHtmlPrinter
に差し替えると、このように見やすいHTMLを出してくれます。