Java - Heap vs acceso directo a memoria

Recientemente me encontrésun.misc.Unsafe clase, lo que permite al usuario asignar, desasignar y, en general, acceder a la memoria de manera similar como en C. Leí en un par de blogs que abordan este problema, p.

Que es más rápido: memoria dinámica o directa - resultados de la prueba reclamo montónMemoria fuera del montón vs DirectByteBuffer vs Heap - Fuera del montón parece ser el más rápidoArchivos mapeados de memoria para datos de series temporales - MappedByteBuffer más rápido que los objetos de montón

El artículo 1) parece estar en contradicción con los demás y no entiendo por qué. DirectMemoryBuffer está utilizandosun.misc.Unsafe debajo del capó (así esMappedByteBuffer), por lo que también deberían sufrir llamadas JNI como se describe en el artículo 1. Además, en el artículo 2, los accesos de memoria Off-heap se parecen a los del artículo 1 y dan resultados completamente opuestos.

¿Podría alguien comentar en general cómo proceder con la memoria fuera del montón, es decir, cuándo usarla, hay un beneficio significativo y, lo que es más importante, por qué un tema similar da resultados muy diferentes según los artículos anteriores? Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta