是否可以在 sun.misc.Unsafe(allocateMemory() 和 freeMemory())上编写内存管理层(如 dlmalloc())?
我想使用堆外存储作为缓存层以加快访问速度,并希望摆脱 GC 开销。
如果我不在正确的道路上,请纠正我。
问问题
436 次
1 回答
3
我建议您查看支持此功能的https://github.com/OpenHFT/Java-Lang,包括锁定本机内存。它还支持 64 位分配大小。
我怀疑它不会更快或更慢,但好处是可以控制内存布局以实现缓存友好性、没有对象头和没有 GC 暂停。
您可能还对支持可在进程之间共享的持久堆外内存的https://github.com/OpenHFT/Java-Chronicle感兴趣。
两者都已发布到 maven Central http://central.maven.org/maven2/net/openhft/
于 2013-09-08T19:03:00.307 回答