首页 > 解决方案 > 如何检查 ruby​​-2.6.3 是否使用 jemalloc ?我将 ruby​​-2.6.3 安装为 $ rvm install 2.6.3 -C --with-jemalloc

问题描述

此命令应显示 -ljemalloc 但事实并非如此。我可以用 ruby​​-2.4.3 和 ruby​​-2.5.x 看到它,但不能用 ruby​​-2.6.x

$ ruby -r rbconfig -e "puts RbConfig::CONFIG['LIBS']"
-lm                                                                                                                                    
$ cat /etc/environment


PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.1

我正在使用 ubuntu 18 LTS 和其他 ruby​​ 版本,我得到了上面提到的 jemalloc 文件库

标签: rubyubuntujemalloc

解决方案


在 ruby2.6.x​​ 中,您必须检查MAINLIBS,如下所示:

$ irb -rrbconfig
irb(main):004:0> RbConfig::CONFIG['MAINLIBS']
=> "-lz -lpthread -lrt -lrt -ljemalloc -lgmp -ldl -lcrypt -lm "

或者,当然,用你的单线:

$ ruby -r rbconfig -e "puts RbConfig::CONFIG['MAINLIBS']"
-lz -lpthread -lrt -lrt -ljemalloc -lgmp -ldl -lcrypt -lm

推荐阅读