特别的想法是,我们可以在JVM之外分配内存,然后使用JNI接口来访问这个内存并将其与一些Java数组相关联.
有人试图执行这样的黑客吗?任何平台依赖就足够了.
例如,这可以帮助在重新启动JVM进程期间执行内存中DB加载的优化.
这个想法是在tmpfs文件系统上拥有一个“文件”支持的MappedByteBuffer.例如.在Linux上,您可以使用/ dev / shm(或/ run / shm)mountpoint.
tmpfs
这样的MappedByteBuffer的性能将与其他直接字节缓冲区相同,但是它会持续重新启动JVM,即可以在新的JVM中再次映射这个“文件”. (我用引号写“file”,因为它看起来像一个常规的应用程序文件,但它实际上是一个驻留在RAM中的共享内存区域).我们积极地使用这种技术来生产内存中的缓存.