Каково влияние на производительность включения драгоценных камней 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
в производстве.