Rails 3.2.8 アプリは、再起動後にロードするのに約 30 秒かかりますrails console。. m1.smallこれは、Ubuntu 11、64 ビットの Amazon EC2インスタンスにあります。サーバーは、負荷がかかった状態で完全に適しているようです (いくつかあります)。展開後にのみ効果的に発生する起動時間は問題です。
Rails インスタンスが読み込まれるときに何が読み込まれているかのタイムトレースを取得する方法はありますか?
Rails 3.2.8 アプリは、再起動後にロードするのに約 30 秒かかりますrails console。. m1.smallこれは、Ubuntu 11、64 ビットの Amazon EC2インスタンスにあります。サーバーは、負荷がかかった状態で完全に適しているようです (いくつかあります)。展開後にのみ効果的に発生する起動時間は問題です。
Rails インスタンスが読み込まれるときに何が読み込まれているかのタイムトレースを取得する方法はありますか?
Gemfile にpryとを追加することで、かなり良いウォークスルーを得ることができますpry-nav
# Gemfile
gem 'pry'
gem 'pry-nav'
これが整ったら、またはbinding.pryなどの初期にロードされたファイルの1つの先頭に追加するだけです. (これは、localhost:3000 で実行していることを前提としています。そうでない場合は、さらに複雑になります。) アプリを再起動すると、詮索好きなセッションに入るはずです。起動時にアプリがヒットするコードの各行をステップ実行します! ある行から別の行にジャンプしたい場合は、コード全体に複数の行を追加できます。入力するだけで次の行に移動できます。environment.rbboot.rbnextbinding.pryexit
これはアプリのベンチマークにはなりませんが、アプリが何をしているかを段階的に確認することができます。これにより、非常に時間がかかっていることを実際に体験できる可能性があります。