问题标签 [off-heap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
114560 浏览

java - “堆上”和“堆外”之间的区别

Ehcache讨论了堆内和堆外内存。有什么区别?使用哪些 JVM 参数来配置它们?

0 投票
1 回答
889 浏览

java - MapDB、序列化器和压缩

我正在研究堆外缓存,但似乎找不到太多关于堆上内存消耗与堆外(仍在内存中)的信息/基准。

我打算使用MapDB。文档表明压缩可以应用于序列化对象和/或整个数据存储。

问题:

  1. 与堆上相同的对象相比,堆外序列化对象的内存占用是否更小?如果可能,比率/基准?
  2. 什么是开销SerializerCompressionWrapper(可能是基准?)
  3. 压缩效率如何?

谢谢!!!

0 投票
1 回答
1040 浏览

heap-memory - EHCache 堆和堆外评估资源是否足以使用?

EHCache 3.2 版

如何评估“ehcache:resources”?

文件:ehcache.xml

认为。

表名:消息有 4 列类型 varchar2(100 字节),并且在数据库中有 1000 行或更多的数据。

多少提供足够的定义堆/堆外值?

谢谢你。

0 投票
2 回答
10648 浏览

apache-spark - 触发堆内存配置和钨

我认为随着项目 Tungesten 的集成,spark 会自动使用堆外内存。

spark.memory.offheap.size 和 spark.memory.offheap.enabled 有什么用?我是否需要在此处手动指定 Tungsten 的堆外内存量?

0 投票
0 回答
671 浏览

java - 如何知道 jvm 内存使用情况:“堆内存”和“堆外内存”

我想查看有关“堆内存”和“堆外内存”的详细信息。我使用 jmap 来查看堆内存使用情况,并且我想知道“堆外内存”的使用情况。我尝试使用pamap pid命令,但只能看到java进程使用的总内存。我想查看更多使用堆外内存的细节。

0 投票
1 回答
130 浏览

xml - apache geode 9.0.3 off heap region,xml配置

如何使用 apache geode 9.0.3 通过 xml 配置将区域声明为堆外

我的 xml 配置在 server-cache.xml 中。

我收到这个错误

我读了这个

通过将堆外区域属性设置为 true 来标记其条目值应在堆外存储的区域 为托管同一区域的所有数据的所有成员统一配置其他区域属性。

来自 http://gemfire.docs.pivotal.io/geode/managing/heap_use/off_heap_management.html

0 投票
1 回答
330 浏览

java - Java-mappedbytebuffer是否占用直接内存?

我很好奇mappedbytebuffer是否占用Java中的直接内存?正如这里提到的

也可以通过将文件的区域直接映射到内存来创建直接字节缓冲区

当我将文件映射到内存时,应该使用直接内存。但是我用 JVM 参数“-XX:MaxDirectMemorySize=200MB”启动了一个程序,然后我尝试将一个 1GB 的文件映射到内存中,它起作用了。更重要的是,我先分配了一个200MB的directByteBuffer,然后尝试将1GB的文件映射到内存中,它仍然有效!那么,mappedbytebuffer 占用了哪一部分内存呢?

0 投票
2 回答
179 浏览

java - Chronicle 中 Java9Memory 的来源

我对 openHFT 项目使用的堆外机制感到好奇,我正在寻找下面源代码定义的类文件(在 github 中的任何地方都找不到):

来自 github 存储库:https ://github.com/OpenHFT/Chronicle-Core/blob/master/src/main/java/net/openhft/chronicle/core/OS.java

我的问题是:这个类是开源的吗?如果是,它是如何工作的?谢谢。

0 投票
2 回答
416 浏览

java - Happens-before 用于直接 ByteBuffer

我在一个线程中有一个直接的 ByteBuffer(堆外),并使用 JMM 提供给我的一种机制将其安全地发布到另一个线程。之前发生的关系是否扩展到由 ByteBuffer 包装的本机(堆外)内存?如果不是,我如何安全地将直接 ByteBuffer 的内容从一个线程发布到另一个线程?

编辑

这不是Can multiple threads see writes on a direct mapped ByteBuffer in Java? 因为

  • 我说的不是 mmaped() 区域,而是一般的堆外区域
  • 我正在安全地发布 ByteBuffer
  • 我没有同时修改 ByteBuffer 的内容,我只是将它从一个线程转移到另一个线程

编辑 2

这不是使 Java 的 ByteBuffer 线程安全的选项的副本我不想同时从两个不同的线程修改 ByteBuffer。我正在尝试将是否从一个线程移交给另一个线程,并在由直接 ByteBuffer 支持的本机内存区域上获得发生前的语义。一旦移交,第一个线程将不再修改或读取 ByteBuffer。

0 投票
2 回答
291 浏览

java - 如何使用 Chronicle Map 对随机索引进行 get/set 序列化/反序列化 long[] 值?

我是编年史地图的新手。我正在尝试使用 Chronicle-map 对堆外映射进行建模,其中键是原始短数组,值是原始长数组。对于给定的地图,长数组值的最大大小是已知的。但是,我将有多个此类映射,每个映射对于长数组值可能具有不同的最大大小。我的问题与键和值的序列化/反序列化有关。

通过阅读文档,我了解到对于键,我可以使用值类型 ShortValue 并重用该接口的实现实例。关于值,我发现页面谈论DataAccess 和 SizeReader的页面给出了 byte[] 的示例,但我不确定如何使其适应 long[]。我还有一个额外的要求是,我需要在长数组中的任意索引处获取和设置值,而无需支付每次对整个值进行完全序列化/反序列化的成本。

所以我的问题是:如何在构建映射时对值类型进行建模,如果每个映射的最大大小已知并且我需要能够随机读写每次都没有序列化/反序列化整个值有效负载的索引?理想情况下,long[] 将直接在堆外进行编码/解码,而无需进行堆内中间转换为 byte[],并且编年史映射代码不会在运行时分配。谢谢你。