2012-04-24 14 views
13

私のアプリの各ページリクエストでは、約30個のアセット(JavaScriptと画像)が取り込まれます。これはベンダー/アプリケーションとサードパーティの両方のものです。もちろん、すべてのJavaScriptは統合され、本番環境では縮小されているので、そこには問題ありませんが、開発段階では非常に遅いです。ページをロードするのに8秒くらいかかり、悪化するだけです。これは正常であり、それをスピードアップするために何ができるのですか?開発中の資産の読み込みが遅い

私はアセットから/ public /に画像を移動しようとしましたが、ゆっくりとそれらを提供します。約3〜4ファイル。

これは、WEBrickとUnicornの両方を使用した高速MacBook Proで発生しています。

+0

あなたは何人の労働者をユニコーンでオープンしましたか? WEBrickは一度に1つのリクエストを処理できます。したがって、30個のアセットに対して8秒かかるのは正常です。ユニコーンを4-5人の従業員で構成すると、それははるかに速くロードされます。 – bcd

+0

良い考えですが、私はこれを2,5、および16で試しました。ただ明確にするために、config/unicorn.rbに "worker_processes 5"を設定し、bundle exec unicorn_railsを実行しています。 – mahemoff

+0

火かき棒やクロームの開発ツールをチェックして、何が時間を費やしているかを確認してください。それはメインページであり、アセットではありません。私は約20の資産を持っており、それに要する時間は1/2秒未満です(データベースの作業がほとんどないページ)。 – Matthew

答えて

25

お役に立てば幸いです。

#development.rb 
config.assets.debug = false 
+0

ありがとうございました:) – achempion

+0

これは不思議に働いた。 – nfriend21

+0

これを行うことの欠点は何ですか? –

1

私は個人的にthinサーバーを使用します。私の開発環境も遅くなりました(私には+ 12秒かかります)。

group :development do 
    gem "thin" 
end 

バンドルとして実行します:私はダウン+に私のロード時間をもたらし-5(いくつかの設定とコードのリファクタリングで)資産をプリコンパイルする前に

thin start 

それはあなたのGemfileを行う追加。それはスピードを少し改善すべき資産のデバッグをオフに

enter image description here

-source薄いウェブサイト

+0

プロファイリングデータをありがとう。残念ながら、それはユニコーンと同じくらい速く働いていました。約30ファイルを読み込むのに6秒かかります。これは、アプリケーションが実行可能になるまで(ほとんどがJS/CSSファイル)実行されるまでの時間です。 – mahemoff

0

あなたは、ファイルシステムでそれらを編集して、バックグラウンドでの資産をプリコンパイルするguardとその関連プラグインをチェックアウトすることができます。

+0

私はこれに頼る必要があるかもしれません。私は、プロダクションのアセットパイプラインでは適切に機能するように設定するのは時間がかかると思います。 – mahemoff

9

ほとんどの場合、Railsは各アセットリクエストですべてのクラスをリロードします。この宝石:https://github.com/wavii/rails-dev-tweaksは、Railsのオートロードルールを調整することで問題を解決します。

+0

うわー、再読み込みがたくさんあります。それが起こるのを知らなかった、私はdevの微調整のおかげで確認します。 – mahemoff

+0

現象!それは実際に働いた。 – mahemoff

+1

@mahemoffこの問題を解決した場合は、回答としてマークする必要があります。 –

0

私はレールが開発のたびに資産をコンパイルしなければならないと考えていますが、プロダクションではそれが初めてではありませんが、これは開発が遅いことにつながります。

関連する問題