web-dev-qa-db-ja.com

Railsアプリのプロファイルを作成するためにどのツールをお勧めしますか?

Railsのプロファイリングツールをしばらく探していました。私は現在Ruby-profとrailsbenchをプレイしてテストしていますが、それを機能させるために必要な微調整とマングリングの量に少し不満を感じています。

微調整は(大いに)気にしませんが、Railsアプリをプロファイリングするための、もっと簡単で使いやすいツールが他にあるかどうか知りたいのですが。どのツールをお勧めしますか?

45
lsdr

New Relic オファーRailsプロファイリング( 無料の 'Lite' バージョンを含む)。

20
Corbin March

組み込みプロファイラー も使用できます:

$ 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を使用できることに注意してください。

44
mwilliams

ラックのバグはかなりクールです http://github.com/brynary/rack-bug

5
Sam Saffron

http://Rails-analyzer.rubyforge.org/ あなたが探しているものかもしれません。

最も時間のかかるアクションの明確なリストとアクションプロファイラーについては、プロダクションログアナライザーを強くお勧めします。

追加:本番ログアナライザーの場合、構成は必要ありません。本番ログを解析するだけで、最小/最大/中央値など、最も時間のかかるアクションのリストが表示されます。より多くのプロファイル/最適化を行う必要がある場所を確認するのは非常に良いことです。

4
Cristian Vat

チェックする価値のあるもう1つは、ミニプロファイラーです: https://github.com/SamSaffron/MiniProfiler/tree/master/Ruby

StackExchangeで使用されます(ただし、このバージョンはRubyに移植されています)。

Railscastは次のとおりです。 http://railscasts.com/episodes/368-miniprofiler?view=asciicast

3
Brian Armstrong

OSX Leopardを使用している場合は、DTraceを試してみることができます。

2
akuhn

また、FiveRunsの TuneUp も確認する必要があります。これは完全に無料で、プラグインとしてRailsアプリケーションにインストールされます。サーバーにデータ(ほとんどの場合非常に無害な情報)を送り返すことに注意してください)が、一部の人(つまり政府機関はそれについて非常に不満を持っているでしょう)ツールが無料であると考えていることの素晴らしさに驚かれると思います。

もう1つの優れた機能は、実行データを投稿して他の人がコメントできるようにし、長いクエリや不正なコードの診断に役立てることができることです。

0
Kevin Elliott