微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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中的共享内存区域).我们积极地使用这种技术来生产内存中的缓存.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐