我用jemalloc从源代码中构建并安装了rub 2.6.5。然而,当我检查是否在那里时,我没有看到一个条目。还有什么事我应该做的吗?
ubuntu:~$ uname -a
Linux ip-10-0-3-198 4.15.0-1032-aws #34-Ubuntu SMP Thu Jan 17 15:18:09 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
ubuntu:~$ ./configure --enable-shared --with-jemalloc
ubuntu:~$ make
ubuntu:~$ make install其结果是:
ubuntu:~$ ruby -r rbconfig -e "puts RbConfig::CONFIG['LIBS']"
-lm 跟踪内存使用情况,一旦部署,我也不会看到与配置类似的服务器相比,没有jemalloc到位的下降。
我不知道我需要做什么才能让jemalloc发挥作用。
谢谢!
发布于 2019-12-03 10:14:23
尝试:
puts RbConfig::CONFIG['MAINLIBS']并检查输出中的-ljemalloc。
这种行为最近发生了变化(确切地说,在2.6.x中)。
发布于 2020-03-27 09:56:14
由于某些原因,接受的答案对我不起作用(Heroku),但以下是:
MALLOC_CONF=stats_print:true ruby -e "exit"
已经成功了。
如果你有一些数据,就意味着它起作用了。
来源:https://github.com/gaffneyc/heroku-buildpack-jemalloc/issues/5#issuecomment-499932026
发布于 2021-04-13 16:39:48
对于那些使用LD_PRELOAD而不是直接构建ruby的人,一个更完整的答案是:
RbConfig::CONFIG['MAINLIBS'].include?("jemalloc") || ENV['LD_PRELOAD'].include?("jemalloc")当然,这还不足以判断jemalloc是否真的有效,至于接受的答案!
https://stackoverflow.com/questions/59154333
复制相似问题