【发布时间】:2019-01-28 16:23:55
【问题描述】:
最近,我正在转向 jvm 选项以提高性能。
当我学习 GC 选项ParallelGCThreads 时,我遇到了问题。
我认为ParallelGCThreads的最佳值是逻辑处理器的数量。但是在我的32核机器上,默认值是23。从oracle的文章Garbage First Garbage Collector Tuning中,它告诉然后处理器数量超过8,默认值ParallelGCThreads 是处理器的 5/8。
那么,为什么是 5/8 而不是 8/8?
【问题讨论】:
-
您希望所有逻辑核心都运行 GC?你到底为什么想要那个?你想让你的 CPU 工作还是收集垃圾?
-
是的,更多的 cpu 做 gc 导致停止世界的时间更少
-
CPU 执行实际工作的时间也更少。使用所有核心进行垃圾收集将是一个愚蠢的默认设置。
-
但是此时核心数小于等于8,gc线程默认计数为核心数。
-
@Kayaman 他说的是
ParallelGCThreads,而不是ConcGCThreads
标签: java garbage-collection g1gc