java - "on-heap"和 "off-heap"之间的区别

标签 java memory heap-memory ehcache off-heap

Ehcache talks about堆内和堆外内存。有什么不同?使用哪些 JVM 参数来配置它们?

最佳答案

堆上存储是指将出现在 Java 堆中的对象(并且也会受到 GC)。另一方面,堆外存储是指由 EHCache 管理的(序列化)对象,但存储在堆外(并且也不受 GC)。由于堆外存储继续在内存中管理,因此它比堆上存储稍慢,但仍然比磁盘存储快。

问题中发布的链接中涉及堆外存储的管理和使用的内部详细信息并不是很明显,因此明智的做法是查看Terracotta BigMemory的详细信息。 ,用于管理盘外存储。 BigMemory(堆外存储)用于避免 GC 在几兆字节或几千兆字节大的堆上的开销。 BigMemory 使用 JVM 进程的内存地址空间,通过 direct ByteBuffers与其他 native Java 对象不同,它们不受 GC 的影响。

关于java - "on-heap"和 "off-heap"之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50081020/

相关文章:

C - 释放数组内的指针

calloc 返回指向自身的指针

c - 在堆内存数组中分配指向结构的指针

java - jQAssistant 堆问题 - 显式设置 java 版本

mysql - 每个 MySQL 排序规则的每个字符的内存使用情况

ios - Xcode失去了与iPhone 6的连接

java - 如何从java中的base64编码字体字符串创建字体文件

Java 扫描器最佳实践

java - 如何在 Android/Java 中用 JSON 数组解析 JSONArray?

java - 这是否正确地将名称和等级存储到数组中?