Sprockets を追加した後、開発モードで Rails の読み込みが非常に遅くなります。速度を上げるにはどうすればよいですか?
5 に答える
https://github.com/wavii/rails-dev-tweaksをご覧ください。
Railsは、開発モードのすべてのSprocketsアセットリクエストですべてのto_prepareフックを実行しています。これには、コードの自動(再)ロードなどが含まれ、さまざまなgemがそこでも機能します。
rails-dev-tweaksは、アセットリクエストでto_prepareとリロードを無効にします(その他いくつか-READMEの最初の部分を読んでください)。適切なサイズのプロジェクトでは、開発環境を大幅に高速化します。必要な追加のリクエストに対してこれを行うように構成することもできます
この問題に関するいくつかの Google の結果を参照した後、DNS の問題が存在する場所を突き止めました。
問題は、Rails が逆引きを行っていることです。そのため、直接 IP から要求した場合、またはブラウザーを搭載したマシンのみの /etc/hosts 内のホスト名を要求した場合、私はすべてをまとめて VM で実行し、その IP がすぐに何かに解決されないため、これを頻繁に行います。開発サーバーでは、Rails はすべてのリクエストを待機します。
この話の教訓?開発サーバー (レールを実行しているサーバー) 上の開発に関連するすべての IP の /etc/hosts エントリを含めます。これは、先に進んで、すべての偽/仮想/その他のホストエントリを作成することを意味します.Railsテストに関与すると予想される開発サーバー上のIP.あなたはそれが迅速であることを望みます。
私のために働いた奇妙な解決策。私は通常、hosts ファイルに設定されている myapp.local:3000 を介して、開発中のアプリに移動しました。アセットの読み込みがとてつもなく遅くなりました。
127.0.0.1:3000 経由でアプリに移動すると、アセットがすばやく読み込まれ、さらに、ローカル IP を 1 回使用した後、myapp.local:3000 を使用して移動できるようになり、アセットが超高速で読み込まれるようになりました。
理由を教えていただければ幸いですが、誰かの役に立てば幸いです。私はOSX 10.7.5を使用しています。
こちらのターボスプロケットもチェックしてください-https ://github.com/ndbroadbent/turbo-sprockets-rails3
それは有望に見えます。
本番環境での実行速度を見たことがありますか? 開発環境は、テスト環境や本番環境とは異なる動作をするため、より多くのパフォーマンス ヒットが発生します。これ以上の情報がなければ、より良い回答を提供することはできません。