为什么将生产用于轨道应用的开发

use*_*948 2 mongrel ruby-on-rails

两者之间有什么重大差异吗?我还没有看到一个解释主要区别是什么的文档?性能??

tad*_*man 8

"开发"和"生产"操作模式之间存在显着差异,即使两者看起来表面上相似.

在发展模式中的任何文件app/,并config/routes.rb重新加载每个请求.这可能需要相当长的时间来处理,但生产基于任何改变你的代码库,这东西大概是正在进行的开发环境中跟上时代的响应的优势.由于生产环境不应在部署之间更改,因此Rails将缓存您的控制器,视图,路由,帮助程序和模型以获得最佳性能.对源的任何更改都需要重新启动应用程序.

开发的另一个特性是Rails日志记录级别设置debug为尽可能详细.您不仅可以获得每次SQL调用的详细分类,还可以获得次要警告和其他信息性消息,否则这些消息将在生产中被忽略.此日志记录对性能造成相当大的影响,除非您尝试诊断问题,否则不应在生产环境中使用.这些日志文件变得非常快,如果不重新启动Web服务器进程就很难旋转它们.

在开发环境中还有一种方法可以从异常中解救并将它们呈现为人类可读的错误报告.这对于调试很有用,但在生产环境中可能会暴露有关应用程序的敏感详细信息,因为它通常包含有关文件系统,关键参数等的大量信息.绝不应在生产站点上启用此功能.

这些差异可能并不明显,但是你只需要在比较配置设置config/environments/development.rbconfig/environments/production.rb.不幸的是,有些默认值并不明显,因为它们有时并没有在这些文件中清楚地表达出来,但通常会有基础知识.


Dou*_*g R 5

在Rails生产环境中,您的应用程序代码被缓存,因此解释器不必在每次调用方法时重新加载您的类.您的应用程序基本上存储在内存中.这提供了明确的速度改进.

此外,它默认情况下记录的次数要少得多; 例如,生产日志不像开发日志那样包含每个sql调用.