Является ли собственная память Java быстрее, чем куча?

Я изучаю варианты, которые помогут моему приложению, интенсивно использующему память, и при этом я наткнулся на BigMemory Терракоты. Насколько я понимаю, они используют преимущества «собственной памяти» вне кучи без сбора мусора, и очевидно, что это примерно в 10 раз медленнее, чем кучное хранилище, из-за проблем с сериализацией / десериализацией. До того, как я прочитал о BigMemory, я никогда не слышал о «собственной памяти» помимо обычного JNI. Хотя BigMemory - интересный вариант, заслуживающий дальнейшего рассмотрения, я заинтригован тем, что можно было бы достичь с помощью собственной памяти, если бы проблему сериализации можно было обойти.

Является ли собственная память Java быстрее (я думаю, это влечет за собой объекты ByteBuffer ?), Чем традиционная память кучи, когда нет проблем с сериализацией (например, если я сравниваю ее с огромным байтом [] )? Или капризы сборки мусора и т. Д. Делают этот вопрос безответным? Я знаю, что «измерить» - это распространенный здесь ответ, но боюсь, что не стал бы проводить репрезентативный тест, так как еще недостаточно знаю, как работает собственная память в Java.

5
задан Peter Lawrey 11 July 2016 в 15:15
поделиться