我已经安装了 jemalloc
并遵循了所有指南,但它看起来不像是 ruby
在使用它:
$ apt install libjemalloc2
$ ls -la /usr/lib/x86_64-linux-gnu/libjemalloc.so.2
-rw-r--r-- 1 root root xxxxxx Feb 23 2019 /usr/lib/x86_64-linux-gnu/libjemalloc.so.2
$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 irb
irb(main):001:0> puts RbConfig::CONFIG['LIBS']
-lm
irb(main):002:0> puts RbConfig::CONFIG['MAINLIBS']
-lz -lpthread -lrt -lrt -lgmp -ldl -lcrypt -lm
Ruby 3.0.0 是否需要以其他方式加载 jemalloc,库是否在配置中的其他地方注明,或者我做错了什么?
最佳答案
根据 docker-library Github repo for Ruby 上的 this comment,使用 LD_PRELOAD
会以 Ruby 不会意识到的方式专门运行 jemalloc。
但是,如果 LD_PRELOAD
正确导出,running the command MALLOC_CONF=stats_print:true ruby -e "exit"
将输出统计信息。
关于Ruby 3.0.0 似乎不使用 jemalloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71800022/