2

我已经使用 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 工作。

谢谢!

4

3 回答 3

5

尝试:

puts RbConfig::CONFIG['MAINLIBS']

-ljemalloc在输出中检查。

这种行为最近发生了变化(准确地说是在 2.6.x 中)。

于 2019-12-03T10:14:23.153 回答
4

出于某种原因,接受的答案对我(Heroku)不起作用,但是:

MALLOC_CONF=stats_print:true ruby -e "exit"

成功了。

如果您有一些统计数据输出,则表示它正在工作。

来源:https ://github.com/gaffneyc/heroku-buildpack-jemalloc/issues/5#issuecomment-499932026

于 2020-03-27T09:56:14.760 回答
0

对于那些使用LD_PRELOAD而不是直接构建 ruby​​ 的人,更完整的答案是:

RbConfig::CONFIG['MAINLIBS'].include?("jemalloc") || ENV['LD_PRELOAD'].include?("jemalloc")

当然,这不足以判断 jemalloc 是否真的在工作,至于接受的答案!

于 2021-04-13T16:39:48.783 回答