私はしばらくの間、Rails のプロファイリング ツールを探していました。私は現在、ruby-prof と railsbench をプレイしてテストしていますが、機能させるために必要な微調整とマングリングの量にちょっと不満を感じています。
微調整は (あまり) 気にしませんが、Rails アプリをプロファイリングするための、より単純で使いやすいツールが他にあるかどうか知りたいですか? おすすめのツールは?
私はしばらくの間、Rails のプロファイリング ツールを探していました。私は現在、ruby-prof と railsbench をプレイしてテストしていますが、機能させるために必要な微調整とマングリングの量にちょっと不満を感じています。
微調整は (あまり) 気にしませんが、Rails アプリをプロファイリングするための、より単純で使いやすいツールが他にあるかどうか知りたいですか? おすすめのツールは?
組み込みのプロファイラーも使用できます。
$ ruby script/performance/profiler 'User.new' 5
% cumulative self self total
time seconds seconds calls ms/call ms/call name
189.25 1.76 1.76 1 1760.00 1760.00 Profiler__.start_profile
43.01 2.16 0.40 115 3.48 3.91 ActiveRecord::ConnectionAdapters::Column#simplified_type
8.60 2.24 0.08 15 5.33 8.67 Array#each
7.53 2.31 0.07 115 0.61 5.39 ActiveRecord::ConnectionAdapters::Column#initialize
6.45 2.37 0.06 115 0.52 0.52 ActiveRecord::ConnectionAdapters::Column#type_cast
5.38 2.42 0.05 690 0.07 0.07 Regexp#===
0.00 2.69 0.00 10 0.00 0.00 Process.times
0.00 2.69 0.00 10 0.00 0.00 Benchmark.times
Rails 3 では、 を使用できることに注意してくださいrails profiler
。
New Relicは、無料の「ライト」バージョンを含む Rails プロファイリングを提供します。
ラックバグはかなりクールhttp://github.com/brynary/rack-bug
http://rails-analyzer.rubyforge.org/が探しているものかもしれません。
最も時間のかかるアクションの明確なリストとアクション プロファイラーについては、Production log Analyzer を強くお勧めします。
追加: 運用ログ アナライザーの場合、構成は必要ありません。運用ログを解析するだけで、最小/最大/中央値など、最も時間のかかるアクションのリストが表示されます。さらにプロファイリング/最適化する必要がある場所を確認するのは非常に良いことです。
チェックする価値のあるもう 1 つの機能は Mini Profiler です: https://github.com/SamSaffron/MiniProfiler/tree/master/Ruby
StackExchange で使用されています (ただし、このバージョンは Ruby に移植されています)。
これが Railscast です: http://railscasts.com/episodes/368-miniprofiler?view=asciicast
OSX Leopard を使用している場合は、DTrace を試すことができます。
また、FiveRuns のTuneUpもご覧ください。これは完全に無料で、プラグインとして Rails アプリケーションにインストールできます。サーバーにデータを送り返すことはできますが (ほとんどの場合、非常に無害な情報です)、一部の人にとっては気になるかもしれません (つまり、政府機関はそれについて非常に不満を持っているでしょう)。このツールが無料であることを考えると、このツールの素晴らしさに驚かれると思います。
もう 1 つの優れた機能は、他のユーザーがコメントできるように実行データを投稿して、長いクエリや悪いコードを診断できることです。