Ruby on rails 为什么WEBrick服务器在生产模式下比在开发模式下更快+;轨道

Ruby on rails 为什么WEBrick服务器在生产模式下比在开发模式下更快+;轨道,ruby-on-rails,webrick,Ruby On Rails,Webrick,几个月以来,我一直在开发rubyonrails应用程序。我使用默认的WEBrick服务器来运行应用程序。我发现当我在开发和生产模式下启动WEBrick服务器时,生产模式的服务器运行速度比开发模式的服务器运行速度更快 这背后有什么具体原因吗?有人能解释一下吗?在开发模式下,类不会被缓存,所以每次刷新时Rails都会重新加载所有类。此外,资产编译不是在开发过程中完成的(默认情况下),因此每次刷新时Rails都会重新加载所有资产(CSS、Javascript等)。在生产模式下,服务器会将代码加载到缓存

几个月以来,我一直在开发
rubyonrails
应用程序。我使用默认的
WEBrick
服务器来运行应用程序。我发现当我在
开发
生产
模式下启动WEBrick服务器时,
生产模式
的服务器运行速度比
开发模式
的服务器运行速度更快


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

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

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


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

这两种环境之间存在差异。在Rails中,有几个环境。每个人都有自己的数据库配置和Rails选项

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

Create a new environment file in config/environments/hudson.rb. 
默认情况下,开发环境没有所有缓存,并激活自动重新加载。生产环境包含所有缓存

但是,如果您愿意,您可以创建一个类似于开发的生产环境或类似于生产的开发环境

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

创造新环境:

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

Create a new environment file in config/environments/hudson.rb. 
您可以先克隆一个现有的,例如config/environments/test.rb。 在config/database.yml中为您的环境添加新的配置块。 就这些

现在您可以启动服务器了

ruby脚本/服务器-e hudson

运行控制台

ruby脚本/服务器hudson


等等。

非常感谢您的快速响应。您能解释一下新环境是什么吗?非常感谢viji。你的回答让我很清楚。再次感谢你。