Java вне кучи памяти и огромных страниц

При выделении памяти вне кучи в Java (через прямые буферы или собственный код JNI, например) будет ли выделенная память поддерживаться огромными страницами, если JVM использует -XX:+UseLargePages?

1 ответ

Решение

Нет, HotSpot JVM использует простую библиотеку libc.malloc вызов для выделения памяти для прямого ByteBuffer.

Однако, если вы замените стандартный системный распределитель, например, jemalloc, вы сможете настроить malloc для использования огромных страниц, когда они доступны.

Другой вариант использования огромных страниц для прямых ByteBuffers - это создать файл в файловой системе hugetlbfs, а затем отобразить его в Java как MappedByteBuffer.

Другие вопросы по тегам