1

在 Rails 项目中,通常会看到 shell 增强 gem 仅包含在 Gemfile 的development/test部分中——大概是因为如果将这些 gem 包含在生产 Gemfile 中,则会影响性能或内存。

然而,因为我在 Heroku 上的 Rails 生产服务器上做了很多工作,所以我想美化我的外壳,以便它可以更多地模仿开发(例如通过包含像pry和/或byebug,或这样的宝石awesome_print)。但是,如果我知道它会显着减慢我的应用程序的速度,我无法证明将它们添加到生产中是合理的。

那么byebug,在 Rails 生产环境中包含 shell 增强 gem 对性能有何影响?即使我没有打开生产服务器外壳,它们是否会影响我的单个 dyno 生产 Rails 服务器的性能?是内存命中问题,还是即使我没有打开外壳,这些宝石也会影响我的服务器速度?pryawesome_print

4

1 回答 1

2

对性能没有真正的影响。在服务器正常执行期间不应调用这些 gem。但是,我强烈建议您在 Gemfile 中设置pry和任何其他此类 gem require: false,以避免 1)需要它们的内存占用,以及 2)在您的应用程序中一些模糊的代码路径中留下的任何流浪 s 的可能性binding.pry会触发阻塞pry会话,暂停线程并浪费服务器上的资源。

PS 快速的 Google 搜索在 Bugsnag 博客上出现了一篇文章,详细介绍了它们pry在生产中的使用方式。

于 2016-02-18T05:48:54.313 回答