首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >建议设置最大堆大小?

建议设置最大堆大小?
EN

Stack Overflow用户
提问于 2017-03-21 18:16:45
回答 1查看 1.2K关注 0票数 0

许多建议相当陈旧。Java中的Heap和GC发生了一些变化。

我以前发现过这样的建议:设置过高的最大堆大小可能会影响性能,使其更糟。因此,也可能设置一个过低的价值。

不设置最大堆大小将使用系统默认值,这大约是其总内存的1/4。对于我的计算机,它将把8GB分配给我的总内存的JVM。

我正在使用Java7引入的G1GC,并在运行时应用-XX:+UseG1GC。

很难找到一个适合最大堆大小的一种大小。我正在处理的应用程序可以从小到非常大,这取决于它的组合(这是非常动态的,在运行时确定的)。我已经看到了应用程序的一些实例不需要超过1GB的Max Heap,但其他实例则受益于更大的大小。将中的Max设置为4GB,甚至2GB都会导致运行32位(Java和/或OS )的客户端出现问题(是的,这些人确实存在)。

实际上,是否还需要使用Java 7或8来设置最大堆大小?JVM将使用可用的内容,GC将在已使用的堆和提交的头之间工作。或者GC在所有使用的堆和最大堆之间工作吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-21 19:53:21

实际上,是否还需要使用Java 7或8来设置最大堆大小?

例如,如果JVM与其他也需要ram的应用程序共享操作系统。

JVM将使用可用的内容,GC将在已使用的堆和提交的头之间工作。或者GC在所有使用的堆和最大堆之间工作吗?

根据配置的不同,GCs可能留在实际使用的堆范围内,也可能不在实际使用的堆中。在某些情况下,为了满足吞吐量或暂停时间目标,它们可以显着地膨胀堆大小。因此,限制堆提供了更可预测的堆大小,可能以牺牲吞吐量、延迟或(如果大小不正确) OOMs为代价。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42935163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档