Rails 2.2.2 を実行しています。ruby-prof と Rails アプリのプロファイリングに関する記事をいくつか読みました。そして、物事が実際にどのように機能しているのか混乱しています。
私はもともとこのチュートリアル
http://snippets.aktagon.com/snippets/255-How-to-profile-your-Rails-and-Ruby-applications-with-ruby-prof
を使用してアプリのプロファイリングを行っていましたが、機能します。これには、独自のプロファイル環境を作成して実行することが含まれます> RAILS_ENV=profiling ./script/performance/request -n 100 profiling/homepage.rb
だからここに私の混乱があります。どういうわけか、これは ruby-prof を実行し、すべての統計情報などを開きますが、実際に ruby-prof が呼び出された場所はどこにもありません。
それで、さらに読んでみると、2.2.2にはベンチマーク/プロファイリングが組み込まれているようです。そのため、パフォーマンスセクションにテストファイルを次のように記述します
require 'test_helper'
require 'performance_test_help'
# Profiling results for each test method are written to tmp/performance.
class BrowsingTest < ActionController::PerformanceTest
def test_worksheet
get '/reduction/worksheet'
end
end
そして走る
レーキ テスト:プロファイル
これは私が上で行っていたことと同じですが、今では Rails フレームワーク全体に統合されていますか?
私の次の質問はこれです。元のスクリプトはフラット ファイルと html ファイルを出力しましたが、KCacheGrind (私の場合は MacCallGrind) でツリー ファイルを自動的に開く方法もわかりませんでした。スクリプト呼び出しにフォーマットを追加できますか?
編集: rake テストでスクリプトを実行すると、実際にツリー ファイルが生成されるようです。ただし、Mac CallGrind は、解析しようとするとハングするようです。これらのツリー ファイルを表示するための他のツールを知っている人はいますか?