我正在寻找帮助我的内存密集型应用程序的选项,因此我了解到Terracotta的BigMemory。据我所知,他们利用非垃圾回收的离堆“本机内存”,显然由于序列化/反序列化问题,这比堆存储慢约10倍。在了解BigMemory之前,我从未听说过“本机内存”除了正常的JNI。虽然BigMemory是一个值得进一步考虑的有趣选择,但如果可以绕过序列化问题,我对使用本机内存可以实现什么感到着迷。
当没有序列化问题时,Java本机内存(我认为这包括
当没有序列化问题时,Java本机内存(我认为这包括
ByteBuffer
对象?)是否比传统堆内存更快(例如,如果我将其与巨大的byte[]
进行比较)?或者垃圾收集等方面的不确定性使这个问题无法回答?我知道“测量它”的答案在这里很常见,但我担心我不能设置一个代表性的测试,因为我还不知道Java中的本机内存是如何工作的。