什么是 Hazelcast 高清内存? - on/off堆?

What is Hazelcast HD Memory? - on/off heap?

我已经阅读了this关于Hazelcast高密度内存的官方post。

我假设这个 HD 内存仍然消耗来自 JVM 的内存(其中应用程序 运行 而不是在服务器中创建另一个 JVM 并将其仅用于 hz 实例)我是否正确?

这个本机内存配置的唯一区别是,内存是在堆外分配的,而不是默认的堆内内存分配?

HDMS 或 Hazelcast 高密度内存存储将内存分配到与 Java 堆相同的进程 space 中。这意味着该进程仍然拥有所有内存,但 Java 堆在其他方面是独立的,并且 Hazelcast 分配的 space (堆外/非 Java-堆)不是垃圾收集的目标.值被序列化,生成的字节流被复制到本机内存,读取时被复制回 Java 堆区域并发送给请求者。

将 HDMS 想象成一个奇特的 malloc 实现:)

HDMS 或高密度内存存储是 Hazelcast Enterprise HD 产品的一部分。 HDMS 是 Java 软件访问每个节点多个 TB 内存的一种方式,而无需与长时间且不可预测的垃圾收集暂停作斗争。此内存存储使用许多高性能内存管理技术提供 "off-heap" 内存的优势。 HDMS 解决了与垃圾收集限制相关的问题,因此应用程序可以更有效地利用硬件内存,而无需额外的集群。它被设计为一个可插入的内存管理器,可以为不同的数据结构(如 IMap 和 JCache)启用多个内存存储。