java – 在JVM之外分配内存并在JVM中使用它

前端之家收集整理的这篇文章主要介绍了java – 在JVM之外分配内存并在JVM中使用它前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以在JVM内部创建一个可以作为对象在JVM内部使用的持久性内存对象,以便在JVM重新启动时能够存活?

特别的想法是,我们可以在JVM之外分配内存,然后使用JNI接口来访问这个内存并将其与一些Java数组相关联.

有人试图执行这样的黑客吗?任何平台依赖就足够了.

例如,这可以帮助在重新启动JVM进程期间执行内存中DB加载的优化.

解决方法

是的,这是完全可能的,即使没有JNI.

这个想法是在tmpfs文件系统上拥有一个“文件支持MappedByteBuffer.例如.在Linux上,您可以使用/ dev / shm(或/ run / shm)mountpoint.

这样的MappedByteBuffer的性能将与其他直接字节缓冲区相同,但是它会持续重新启动JVM,即可以在新的JVM中再次映射这个“文件”. (我用引号写“file”,因为它看起来像一个常规的应用程序文件,但它实际上是一个驻留在RAM中的共享内存区域).我们积极地使用这种技术来生产内存中的缓存.

猜你在找的JVM相关文章