为什么WEBrick服务器在生产模式下比在开发模式下更快? +滑轨

问题描述 投票:2回答:3

自几个月以来,我一直在开发ruby on rails应用程序ruby on rails 。 我使用默认的WEBrick服务器来运行应用程序。 我发现当我在developmentproduction模式下启动WEBrick服务器时,服务器的production mode速度比development mode更快。

这背后有什么具体原因吗? 有人可以解释一下吗?

ruby-on-rails webrick
3个回答
3
投票

在开发人员模式下,类不会被缓存,因此Rails每次刷新时都会重新加载所有类。 此外,资产编译不是在开发中完成的(默认情况下),因此每次刷新时Rails都会重新加载所有资产(CSS,Javascript等)。


3
投票

在生产模式下,服务器将代码加载到缓存中,这使事情变得很快。 但是,在开发模式中并非如此(因为每次进行更改时都不想重新启动webrick)。 每个请求都会再次加载相应的代码,这需要一些时间。

而且大多数时间都是资产管道。 在生产中,您可能会在一两个请求中获得资产(javascript和css)的编译版本。 在开发中,出于调试目的(当然取决于您的环境设置),您将它们拆分了。 而且由于浏览器不能同时处理所有请求,因此某些资产在其他资产完成加载后才被加载。 您可以使用例如firebug的网络控制台来观察此行为。 这意味着:您拥有的资产越多,页面在开发模式下加载所需的时间就越长。


1
投票

区别在于两种环境。 在Rails中,有几种环境。 每个都有自己的数据库配置和Rails选项。

您可以使用Rails.env变量对特定环境进行一些不同的更改。

默认情况下,开发环境没有所有缓存并激活自动重新加载。 生产环境包含所有缓存。

但是如果你想要你可以创建像生产这样的开发或开发环境的生产环境。

您也可以添加一些新的特定环境。

创造新环境:

假设您要创建哈德逊环境。

Create a new environment file in config/environments/hudson.rb. 

您可以从克隆现有的文件(例如config / environments / test.rb)开始。 在config / database.yml中为您的环境添加新配置块。 就这样。

现在您可以启动服务器了

红宝石脚本/服务器-e hudson

运行控制台

ruby脚本/服务器哈德森

等等。

© www.soinside.com 2019 - 2024. All rights reserved.