当堆外内存已满时,Chronicle 地图的行为如何?

问题描述

我下载了一些文件,并使用内存中的编年史地图将它们存储在堆外。当我超过可用的本机(堆外)内存量时,我想了解编年史地图的行为。我有两个关于它的问题:

  1. 数据是否会溢出到磁盘?如果不是,究竟会发生什么?如果出现错误,避免此类错误的最佳方法和做法是什么?
  2. 如果我们在使用完历史记录地图后不关闭它们(或者如果我们有内存泄漏),它会继续填满堆内存吗?堆外内存已满时会导致JVM故障,还是操作系统会干预并为我们清理?

解决方法

与 Hash Maps 相比,Chronicle Maps 可以更有效地使用垃圾收集,并且具有或实现最大 CM 条目大小。在垃圾收集方面,它也比哈希映射快得多。我建议看看以下内容。 https://dzone.com/articles/java-chroniclemap-part-1-go-off-heap

至于内存泄漏,我假设在谈到 Java 时,JVM 会处理内存并避免内存泄漏。