相关疑难解决方法(0)

如果我使用 Heroku buildpack,我是否需要使用 jemalloc 构建 Ruby 并使用 gem?

示例Ruby (2.4.1) on Rails (4.2.8)应用程序,使用 Puma 配置并部署在Heroku (cedar-16)上。目前正在Mojave 10.14.5 MBP上进行开发。我的使命是减少内存使用,最近通过这篇文章发现了 jemalloc 。我重新安装了 Ruby(使用 RVM)并启用了 jemalloc,如以下输出所示 - -lpthread -ljemalloc -lgmp -ldl -lobjc。我继续添加jemalloc gem并安装捆绑包,没有出现任何问题。我还设置了Heroku buildpack并配置了必要的环境变量。

然而,使用 Gemfile 中的 gem,我无法运行任何 rake/rails 命令 -rails c返回以下错误,紧接着我的 Mac 风扇就开始启动:

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

foreman start卡在* Preloading application. 如果我删除宝石,所有问题都会消失并且应用程序可以正常工作。

由于我不了解 Heroku 构建包的工作原理以及该特定构建包的准确编程方式,因此我的问题如下:

  1. 添加了 buildpack 后,我真的需要在项目中安装 gem 吗?
  2. 添加构建包后,我是否需要使用 jemalloc 编译的 Ruby 版本?
  3. 如果我确实需要宝石,我该如何消除上述错误?

ruby rubygems ruby-on-rails heroku jemalloc

2
推荐指数
1
解决办法
2412
查看次数

标签 统计

heroku ×1

jemalloc ×1

ruby ×1

ruby-on-rails ×1

rubygems ×1