加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 05:56:23 所属栏目:Java 来源:网络整理
导读:是否可以在JVM内部创建一个可以作为对象在JVM内部使用的持久性内存对象,以便在JVM重新启动时能够存活? 特别的想法是,我们可以在JVM之外分配内存,然后使用JNI接口来访问这个内存并将其与一些Java数组相关联. 有人试图执行这样的黑客吗?任何平台依赖就足够了
是否可以在JVM内部创建一个可以作为对象在JVM内部使用的持久性内存对象,以便在JVM重新启动时能够存活?

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

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

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

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读