私はruby on rails
数ヶ月からアプリケーションを開発しています。デフォルトのWEBrick
サーバーを使用してアプリケーションを実行します。development
そして、WEBrickサーバーをandproduction
モードで起動すると、サーバーの動作速度が。production mode
よりも速くなることがわかりましたdevelopment mode
。
その背後にある特定の理由はありますか?誰か説明してもらえますか?
私はruby on rails
数ヶ月からアプリケーションを開発しています。デフォルトのWEBrick
サーバーを使用してアプリケーションを実行します。development
そして、WEBrickサーバーをandproduction
モードで起動すると、サーバーの動作速度が。production mode
よりも速くなることがわかりましたdevelopment mode
。
その背後にある特定の理由はありますか?誰か説明してもらえますか?
本番モードでは、サーバーがコードをキャッシュにロードします。これにより、処理が迅速になります。ただし、開発モードではそうではありません(変更を加えるたびにwebrickを再起動したくないため)。すべてのリクエストは、対応するコードを再度ロードしますが、これには少し時間がかかります。
そして、最も時間のかかるものは資産パイプラインです。本番環境では、1つまたは2つのリクエストで、アセット(javascriptsおよびcss)のコンパイル済みバージョンを取得します。開発では、デバッグの目的で(もちろん、環境設定に基づいて)それらを分割します。また、ブラウザはすべてのリクエストを同時に処理するわけではないため、一部のアセットは他のアセットの読み込みが完了した後に読み込まれます。この動作は、firebugのネットワークコンソールなどで確認できます。つまり、アセットが多いほど、開発モードでのページの読み込みに時間がかかります。
開発モードでは、クラスはキャッシュされないため、Railsは更新するたびにすべてのクラスをリロードします。また、アセットのコンパイルは開発中に行われないため(デフォルト)、Railsは更新するたびにすべてのアセット(CSS、Javascriptなど)をリロードします。
違いは2つの環境の違いです。Railsにはいくつかの環境があります。それぞれに独自のデータベース構成とRailsオプションがあります。
Rails.env変数を使用して、特定の環境でいくつかの異なる変更を加えることができます。
デフォルトでは、開発環境にはすべてのキャッシュがなく、自動リロードがアクティブになっています。本番環境にはすべてキャッシュがあります。
ただし、必要に応じて、開発のような本番環境または本番のような開発環境を作成できます。
新しい特定の環境を追加することもできます。
新しい環境の作成:
ハドソン環境を作成したいとします。
Create a new environment file in config/environments/hudson.rb.
config / environment / test.rbなど、既存のもののクローンを作成することから始めることができます。ご使用の環境のconfig/database.ymlに新しい構成ブロックを追加します。それで全部です。
これで、サーバーを起動できます
ルビースクリプト/サーバー-ehudson
コンソールを実行する
ルビースクリプト/サーバーハドソン
等々。