Ruby 3.0.0 似乎不使用 jemalloc

标签 ruby linux jemalloc

我已经安装了 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/

相关文章:

ruby - 高效的 Ruby LRU 缓存

javascript - Rails + Angularjs : How to communicate (delete record from database) with backend?

G1 和巨大内存的 Java native 内存泄漏

Ruby + Tk 的 Canvas 和形状出现问题

ruby - Ruby 中命名空间的不同方式

regex - rsync --exclude-from 'list' 文件不工作

linux - 尝试使用cgroup显示CPU分配更改

linux - 在 shell 中合并两个文件,如粘贴命令

memory-leaks - jemalloc 堆分析仅跟踪分配吗?