How to know region size used of G1 garbage collector?

keiki :

I'm currently looking into G1 GC in latest Java 8 version.

I have issues with "Humongous Allocation" so I wanna know how big my region size is.

How can I find out how big the region size is set?

How can I calculate the region size myself?

Thanks

Ron Reynolds :

G1 region-size in Java-8 is based on startingHeapSize/2048 and rounded DOWN to the first power of 2 between 1MB and 32MB; region sizes <1MB or >32MB are not supported.

you can also set the region-size via -XX:G1HeapRegionSize=n (note, the value has the same power-of-2/range restrictions).

so actually the JVM seems biased towards a region count between 2048 and 4095 (assuming a heap between 2GB and 128GB).

in general these are the region-sizes per heap-size range:

 <4GB -  1MB
 <8GB -  2MB
<16GB -  4MB
<32GB -  8MB
<64GB - 16MB
64GB+ - 32MB

note, MB is actually MiB and GB is actually GiB

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=441139&siteId=1