gpt4 book ai didi

java - 在 JVM 外部分配内存并在 JVM 内部使用它

转载 作者:IT王子 更新时间:2023-10-28 23:32:31 27 4
gpt4 key购买 nike

是否可以在 JVM 内存之外创建一个持久内存对象,可以在 JVM 内部作为对象使用,以便在 JVM 重启后仍然存在?

特别的想法是,我们可以在 JVM 之外分配内存,然后使用 JNI 接口(interface)来访问该内存并关联一些 Java 数组。

有人尝试过这种黑客行为吗?任何平台依赖都足够了。

例如,这有助于在 JVM 进程重新启动期间执行内存中 DB 加载的优化。

最佳答案

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

这个想法是有一个 MappedByteBuffertmpfs 上的"file"支持文件系统。例如。在 Linux 上,您可以使用 /dev/shm(或 /run/shm)挂载点。

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

关于java - 在 JVM 外部分配内存并在 JVM 内部使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35241715/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com