Rails 3.1 に「アップグレード」してから、私のアプリは開発モードで非常に遅くなります
(リクエストごとに 30 件以上)
私はたくさんの画像を持っていますが、この時間遅延のほとんどは、各画像の各 GET リクエストを処理するアセット パイプラインのようです。
ステージング モードまたはプロダクション モードでは、アセットがキャッシュされているため、この問題は発生しません。
私が言われていないことはありますか、それともこれが私たちが今期待されている方法ですか?
Rails 3.1 に「アップグレード」してから、私のアプリは開発モードで非常に遅くなります
(リクエストごとに 30 件以上)
私はたくさんの画像を持っていますが、この時間遅延のほとんどは、各画像の各 GET リクエストを処理するアセット パイプラインのようです。
ステージング モードまたはプロダクション モードでは、アセットがキャッシュされているため、この問題は発生しません。
私が言われていないことはありますか、それともこれが私たちが今期待されている方法ですか?
各リクエストの開始時にコードをロードする gem またはアプリの一部がある場合、または単にアプリの一部を参照するだけで、その多くがロードされる原因となる場合、リクエストは遅くなる可能性があります。これらのほとんどでは、オートローダーがリクエスト遅延の主な原因です。
Rails の自動リローダーは、各リクエストの開始時にオートロード可能なクラス/モジュールなどを削除します。Rails が必要なすべてのソース ファイルをリロードするため、各リクエストの開始時に大幅な遅延が発生する可能性があります。
https://github.com/wavii/rails-dev-tweaksを試してみるのもいいかもしれません。これにより、自動リローダーを開始させるリクエストをきめ細かく制御できます。これは実際にはルートの修正ではありません。原因 (おそらく実行する必要のないすべてのリクエストの開始時に何かが余分な作業を行っている) - しかし、それは確かにそのような問題のほとんどを軽減します.
アプリが遅い場合は、アプリまたは使用しているgemの1つが原因です。私も同様の問題を抱えていましたが、Mongoidがそのケースであったようです。ここでもっと読むことができます:
http://martinciu.com/2011/06/rails-3-1-and-slow-asset-pipeline.html
その間:
cp -R app/assets/images パブリック/アセット
本当に役立ちます
public/assets/*
忘れずに .gitignoreに追加してください
rake タスクを使用できます。
上で述べたように、 public/assets/* を .gitignore に含めることを忘れないでください