Java - Heap vs acesso direto à memória
Eu me depareisun.misc.Unsafe
classe, permitindo que o usuário aloque, desaloque e, em geral, acesse a memória de maneira semelhante à do C. Eu li em alguns blogs que abordam esse problema, por exemplo.
MappedByteBuffer
mais rápido que objetos de pilhaO artigo 1) parece estar em contradição com os outros e não compreendo o porquê. O DirectMemoryBuffer está usandosun.misc.Unsafe
sob o capô (o mesmoMappedByteBuffer
), para que também sofram chamadas JNI, conforme descrito no artigo 1. Além disso, no artigo 2, os acessos de memória fora da pilha se assemelham aos do artigo 1 e fornecem resultados completamente opostos.
Alguém poderia geralmente comentar sobre como proceder com a memória fora da pilha, ou seja, quando usá-la, há um benefício significativo e, o mais importante, por que um assunto semelhante fornece resultados altamente diferentes com base nos artigos acima? Obrigado.