G1HeapRegionSize 的默认值是多少?

What is the default value of G1HeapRegionSize?

对于 G1GC,我试图了解 G1HeapRegionSize 参数的默认值是什么。

我看到here

-XX:G1HeapRegionSize=n : Sets the size of a G1 region. The value will be a power of two and can range from 1 MB to 32 MB. The goal is to have around 2048 regions based on the minimum Java heap size.

但是n这里的值是多少?

也给出了类似的解释here

您可以使用 -XX:+PrintFlagsFinal

查看默认 G1HeapRegionSize
java -XX:+PrintFlagsFinal --version | grep -i G1HeapRegionSize

size_t G1HeapRegionSize = 1048576 {product} {ergonomic}

您还可以使用 k,m,g... 后缀指定单位。否则使用 bits。例如(正在使用铁木林18)

java -XX:+PrintFlagsFinal -XX:G1HeapRegionSize=2m --version | grep -i G1HeapRegionSize

size_t G1HeapRegionSize = 2097152 {product} {command line}

G1 垃圾收集器将堆划分为一组大小相同的堆区域。该参数指示 JVM 这些区域的大小。如果您不向 JVM 指示此参数,它将使用人体工程学及其魔力。

可以阅读有关 G1 的更多信息here