我知道不同的系统分配器,现在我正试图在JVM的上下文中绕过它们。问题是是否可以告诉Hotspot使用哪个分配器(例如,我希望JVM使用 tcmalloc 或者干脆打电话 mmap / munmap 每一次)。
tcmalloc
mmap
munmap
也许有一个JVM选项?
jcmd vm.native_内存显示的大小远远小于rss
我会看看 /proc/{pid}/smap 查看居住的地区。线程堆栈通常不驻留,您可以使用大量的虚拟内存。
/proc/{pid}/smap
如果Java程序已经分配了大量的堆内存,那么您将拥有 DirectByteBuffer 对象来包装每个内存区域。
DirectByteBuffer