Java 关闭堆内存和大页面

Java off heap memory and huge pages

在 Java 中分配堆外内存时(例如通过直接缓冲区或 JNI 本机代码),如果 JVM 使用 -XX:+UseLargePages ,分配的内存是否会由大页面支持?

不,HotSpot JVM uses 一个普通的 libc malloc 调用来为直接 ByteBuffer 分配内存。

但是,如果您将标准系统分配器替换为 jemalloc - you'll be able to configure malloc 以在可用时使用大页面。

为直接 ByteBuffers 使用大页面的另一种选择是在 hugetlbfs filesystem and then map it in Java as a MappedByteBuffer.

上创建一个文件