Нужно ли собирать Ruby с jemallo c и использовать гем, если я использую сборочный пакет Heroku? - PullRequest
0 голосов
/ 16 апреля 2020

Пример приложения Ruby (2.4.1) на Rails (4.2.8) , настроенного с Puma и развернутого на Heroku (cedar-16) . В настоящее время разрабатывается на Мохаве 10.14.5 MBP. Я нахожусь на миссии по сокращению использования памяти и недавно обнаружил jemallo c через этот пост . Я переустановил Ruby (используя RVM) с включенным jemallo c, что подтверждается следующим выводом - -lpthread -ljemalloc -lgmp -ldl -lobjc. Я продолжил добавлять jemallo c gem и комплект, установленный без проблем. Я также установил Heroku buildpack и настроил необходимые переменные среды.

Однако из-за гема в моем Gemfile я не могу выполнить какие-либо команды rake / rails - rails c возвращает следующую ошибку, после чего сразу же запускаются вентиляторы моей Ma c:

ruby(45487,0x10739c5c0) malloc: *** malloc_zone_unregister() failed for 0x7fff94a3f000

foreman start застревает на * Preloading application. Все проблемы vani sh & приложение работает нормально, если я удалю драгоценный камень.

Поскольку я не осведомлен о том, как работает сборка пакетов Heroku и как именно этот c запрограммирован точно, мои вопросы следующие :

  1. С добавленным buildpack-пакетом, действительно ли мне нужен гем, установленный в моем проекте?
  2. С добавленным сборочным пакетом, нужна ли мне версия Ruby, скомпилированная с помощью jemallo c?
  3. Если мне нужен гем, как мне избавиться от вышеупомянутой ошибки?
...