在生产中包含Ruby IRB shell gem有什么性能影响? (即Pry / Byebug / awesome_print ...)

时间:2016-02-18 05:28:44

标签: ruby-on-rails shell heroku irb byebug

在Rails项目中,看到外壳增强宝石仅包含在Gemfiles的development / test部分中是常见的 - 可能是因为如果将这些宝石包含在内,会有性能或内存损失生产Gemfile。

但是,因为我在Heroku上的Rails生产服务器上做了很多工作,所以我希望能够更好地模仿开发,以便更多地模仿开发(例如将其包含在像pry这样的宝石中和/或byebugawesome_print)。但是,如果我知道它可能会大大减慢我的应用程序,我无法将其添加到生产中。

那么在生产对Rails中包含byebugpryawesome_print等shell增强宝石的性能影响是什么?它们是否会影响我的单个dyno生产轨道服务器的性能,即使我没有打开生产服务器shell?记忆是否是一个问题,或者这些宝石是否也会影响我服务器的速度,即使我没有打开外壳?

1 个答案:

答案 0 :(得分:2)

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

P.S。 Google快速搜索结果显示post on the Bugsnag blog详细说明了他们如何在生产中使用pry