- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
今天,我在调整 Java 堆大小时注意到一个奇怪的行为。作为确定年轻一代大小的参数,我选择:
-XX:NewSize=2100M
-XX:MaxNewSize=2100M
另外,我关闭了 AdaptiveSizePolicy:
-XX:-UseAdaptiveSizePolicy
根据这 3 个参数,我的年轻一代应该一直是 2100M。但是当我查看我的 gc-log 时,大小只有大约 1900 MB (~89%)。当尝试不同的大小时,日志中的年轻代的百分比大致相同 (~89%)。
整个堆是 5 GB。在日志文件中,整个堆的大小很好(~ 4,97 GB)。我使用的收集器是用于新生代的 PSYoungGen 和用于老年代的 ParallelOldGC。
有人可以简要解释一下为什么年轻一代的规模比应有的要小吗?
最佳答案
有没有可能你只看伊甸园空间而不是整个年轻一代?
-XX:NewSize 控件' Maximum size of new generation (in bytes) ’这不仅仅是‘伊甸园空间’,它还用来管理两个‘幸存者空间’。这些之间的比率可以使用 -XX:SurvivorRatio 控制
参见 this link .
例如,我使用安装了 visualGC 插件的 visualVM 来检查使用以下 VM 参数 -XX:NewSize=256M 和 -XX:SurvivorRatio=4 运行的 java 进程。
我的伊甸园空间是170.750M我的幸存者0是42.625M我的幸存者1是42.625M
170.750 + 42.625 + 42.625 = 256M
关于Java 堆大小 - 没有 AdaptiveSizePolicy 的年轻代大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24019290/
我正在使用 G1GC,jdk 1.7 Java HotSpot(TM) 64-Bit Server VM (24.79-b02) for linux-amd64 JRE (1.7.0_79-b15),
我是一名优秀的程序员,十分优秀!