是否可以在sun.misc.Unsafe(allocateMemory()和freeMemory())上编写内存管理层(如dlmalloc())? 我想使用非堆存储作为缓存层以实现更快的访问,并希望摆脱GC开销。如果我走错了,请纠正我。
我建议您查看https://github.com/OpenHFT/Java-Lang,它支持这一功能,包括本地内存锁定。 它还支持64位分配大小。我怀疑它不会更快,或者慢得多,但好处是可以控制内存布局以获得缓存友好性,没有对象头和没有GC暂停。您可能还对https://github.com/OpenHFT/Java-Chronicle感兴趣,它支持持久化的非堆内存,可在进程之间共享。两者均已发布到maven中央仓库http://central.maven.org/maven2/net/openhft/。