[英]Why WEBrick server is faster in production mode rather in development mode? + Rails
自幾個月以來,我一直在開發ruby on rails
應用程序ruby on rails
。 我使用默認的WEBrick
服務器來運行應用程序。 我發現當我在development
和production
模式下啟動WEBrick服務器時,服務器的production mode
速度比development mode
更快。
這背后有什么具體原因嗎? 有人可以解釋一下嗎?
在開發人員模式下,類不會被緩存,因此Rails每次刷新時都會重新加載所有類。 此外,資產編譯不是在開發中完成的(默認情況下),因此每次刷新時Rails都會重新加載所有資產(CSS,Javascript等)。
在生產模式下,服務器將代碼加載到緩存中,這使事情變得很快。 但是,在開發模式中並非如此(因為每次進行更改時都不想重新啟動webrick)。 每個請求都會再次加載相應的代碼,這需要一些時間。
而且大多數時間都是資產管道。 在生產中,您可能會在一兩個請求中獲得資產(javascript和css)的編譯版本。 在開發中,出於調試目的(當然取決於您的環境設置),您將它們拆分了。 而且由於瀏覽器不能同時處理所有請求,因此某些資產在其他資產完成加載后才被加載。 您可以使用例如firebug的網絡控制台來觀察此行為。 這意味着:您擁有的資產越多,頁面在開發模式下加載所需的時間就越長。
區別在於兩種環境。 在Rails中,有幾種環境。 每個都有自己的數據庫配置和Rails選項。
您可以使用Rails.env變量對特定環境進行一些不同的更改。
默認情況下,開發環境沒有所有緩存並激活自動重新加載。 生產環境包含所有緩存。
但是如果你想要你可以創建像生產這樣的開發或開發環境的生產環境。
您也可以添加一些新的特定環境。
創造新環境:
假設您要創建哈德遜環境。
Create a new environment file in config/environments/hudson.rb.
您可以從克隆現有的文件(例如config / environments / test.rb)開始。 在config / database.yml中為您的環境添加新配置塊。 就這樣。
現在您可以啟動服務器了
紅寶石腳本/服務器-e hudson
運行控制台
ruby腳本/服務器哈德森
等等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.