Каково влияние на производительность включения драгоценных камней Ruby IRB в производство? (т.е. Pry / Byebug / awesome_print ...)

В проектах Rails принято видеть, что гемы улучшения оболочки включаются только в development / test разделы Gemfiles - предположительно потому, что при включении этих драгоценных камней в производственный Gemfile происходит падение производительности или памяти.

Тем не менее, поскольку я довольно много работаю на своем рабочем сервере Rails на Heroku, я бы хотел наладить свою оболочку так, чтобы она могла больше имитировать разработку (например, путем включения обратно в гемы, такие как pry и / или byebug, или же awesome_print). Однако я не могу оправдать добавление их в производство, если знаю, что это может значительно замедлить работу моего приложения.

Итак, каковы последствия для производительности, связанные с включением гемов улучшения оболочки, таких как byebug, pry или же awesome_print в производстве на рельсах? Будут ли они влиять на производительность моего единственного сервера рабочих рельсов dyno, даже если у меня нет открытой оболочки рабочего сервера? Это проблема с памятью или проблема, или эти драгоценные камни также влияют на скорость моего сервера, даже если у меня нет открытой оболочки?

1 ответ

Там на самом деле не влияет на производительность. Эти драгоценные камни не должны вызываться во время нормального выполнения вашего сервера. Тем не менее, я настоятельно рекомендую вам установить pry и любые другие такие драгоценные камни, как require: false в вашем Gemfile, чтобы избежать 1) следа памяти, требующего их, и 2) возможности того, что любой случайный binding.pryЕсли в вашем приложении остаются какие-то непонятные пути кода, это приведет к блокировке. pry сеанс, приостановка потока и тратить ресурсы на вашем сервере.

PS Быстрый поиск в Google нашел пост в блоге Bugsnag, в котором подробно рассказывается, как они используют pry в производстве.

Другие вопросы по тегам