以外のコントローラーでは何も起こらず、HTML 以外のビューでも何も起こらないため (両方の場所ですべての Ruby コードをコメントアウトしました)、ページの読み込みに 5 秒以上かかります。render 'mypage'
Completed 200 OK in 6258ms (Views: 5283.2ms | ActiveRecord: 14.6ms)
これを改善またはプロファイルする方法について何か提案はありますか? 私が遭遇したすべての「解決策」は、私には何の効果もありません。Rails-dev-tweaks は影響を与えません。アセットのデバッグ フラグを変更しても効果はありません。実際、これはすべて、アセットが要求される前に行われると信じています。
更新1450 年 5 月 7 日
こんにちは - 返信ありがとうございます。これをアセットに絞り込んだと言って始めましょう。約半ダースの gem とすべてのアセットを削除すると、ページの読み込み時間が最初の読み込みで 1.3 秒に短縮され、リロードは最大 150 ミリ秒になりました。素晴らしい。したがって、私の問題は、 rails-dev-tweaks のような宝石を適切に構成してそれを実現する方法です。適切な構成が見つからないようです。おそらく 100 ほどのアセットがあり、それより少し多いかもしれません。
あなたの質問に答えるには: 残念ながら、ビューをコピーして貼り付けることはできません。ただし、約 100 行の HTML、10 行の JavaScript、およびおそらく 30 行の HTML に Ruby コードが含まれていると言えば十分ですが、すべての Ruby をコメントアウトしました。
ruby-prof を試してみました - 本当に役に立つものは何もありませんでした
外部 HTTP リクエストは行われていません
ApplicationController には before_filter がありますが、それをコメントアウトしても大きな違いはありませんでした。
Mac OS X 10.8 で開発しています
Rails 3.2.13を使用しています
アセットがまったくない場合: 最初のページの読み込み:
Completed 200 OK in 3418ms (Views: 1414.9ms | ActiveRecord: 74.6ms)
ページの更新:
Completed 200 OK in 140ms (Views: 120.8ms | ActiveRecord: 2.8ms)
興味深いことに、rails -v
読み込みに 4 秒かかります。
ruby-1.9.3-p327@aidin ± time rails -v
Rails 3.2.13
rails -v 4.10s user 0.24s system 92% cpu 4.679 total
更新 2 1450 年 5 月 7 日
New Relic によると、Rails の依存関係 (実際には ActionPack の依存関係) であると思われる Journey 自体に、途方もない時間がかかっています。
Metric Timestamp (s) Duration (ms) Exclusive (ms)
DashboardController#show 0.001 2,652 1917
詳細ページには、次のファイルが表示されます。
journey-1.0.4/lib/journey/router.rb
そして、この行:
status, headers, body = route.app.call(env)
更新 3 5 月 7 日 @ 1509
さらに調査すると、すべてのアセットを削除するだけでなく、すべての gem を削除すると、応答時間が許容範囲内の最大 150 ミリ秒に短縮されることがわかりました。宝石を元に戻すと、800ms から 1500ms に移動します。明らかに、それらだけで問題を引き起こしている何かが起こっています。
どのgemが問題を引き起こしているかを特定できると思う人がいれば、喜んでGemfileを投稿します