Rails 3.2/Ruby 2.0 のいくつかと、Rails 2.3/Ruby 1.8.7 のいくつかの Rails アプリを使用しています。
それらに共通しているのは、成長して依存関係/宝石を追加するにつれて、起動に時間がかかることです。開発、テスト、本番、コンソール、それは問題ではありません。60 秒以上かかるものもあります。
まず、読み込み時間が非常に遅くなる原因をプロファイルし、次に読み込み時間を改善するための推奨される方法は何ですか?
Rails 3.2/Ruby 2.0 のいくつかと、Rails 2.3/Ruby 1.8.7 のいくつかの Rails アプリを使用しています。
それらに共通しているのは、成長して依存関係/宝石を追加するにつれて、起動に時間がかかることです。開発、テスト、本番、コンソール、それは問題ではありません。60 秒以上かかるものもあります。
まず、読み込み時間が非常に遅くなる原因をプロファイルし、次に読み込み時間を改善するための推奨される方法は何ですか?
これには、いくつかの原因が考えられます。
bundle clean
。RVM を使用している場合は、新しい gemset を作成してみてください。プロファイリングに関する限り、 ruby-prof を使用して、アプリの起動時に何が起こるかをプロファイリングできます。ruby-prof ブロックでラップconfig/environment.rb
してから、それを使用して、 のようなブート サイクルのプロファイル レポートを生成できますrails r ''
。これは、ブートで多くの時間を費やしている場所を追跡するのに役立ちます。のバンドラーのセットアップboot.rb
や の#initialize!
呼び出しのように、個々のセクションをプロファイリングすることもできますenvironment.rb
。
考慮していない可能性があるのは、DNS タイムアウトです。アプリが起動時に解決できない DNS ルックアップを実行している場合、プロセスが $timeout 秒間ブロックされる可能性があります (場合によっては 30 秒に達することもあります)。それらについてアプリを監査することもできます。