Java - куча против прямого доступа к памяти

Я недавно сталкивалсяsun.misc.Unsafe класс, позволяющий пользователю выделять, освобождать и, в общем, получать доступ к памяти аналогично тому, как это делается в C. Я читал в нескольких блогах, посвященных этой проблеме, например.

Что быстрее - куча или прямая память - результаты теста претендуют на кучуВне памяти кучи против DirectByteBuffer против кучи - Вне куча, кажется, самый быстрыйФайлы, отображенные в память для данных временных рядов - MappedByteBuffer быстрее, чем куча объектов

Статья 1), кажется, противоречит другим, и я не понимаю, почему. DirectMemoryBuffer используетsun.misc.Unsafe под капотомMappedByteBuffer), поэтому они также должны страдать от вызовов JNI, как описано в статье 1. Кроме того, в статье 2 доступ к памяти вне кучи похож на доступ в статье 1 и дает совершенно противоположные результаты.

Может ли кто-то вообще прокомментировать, как работать с памятью вне кучи, то есть когда использовать ее, есть ли для нее существенная выгода, и самое главное, почему подобный предмет дает сильно отличающиеся результаты, основанные на статьях выше? Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос