方法區:之前稱爲永久代
,後來又稱爲Metaspace
。
https://blogs.oracle.com/poonam/understanding-g1-gc-logs
JDK9用的是G1,之前是CMS
ZGC太新了。
G1:主要關注的是停頓時間
堆內存>6G時
用G1可以<500ms,
可以設置時間
高併發,young到old的晉升很快時,推薦G1
gcviewer工具來看:
假如希望最大停頓時間200ms:
G1追求的是低停頓。
G1會動態調整young和old大小。
G1注意:
(1)一定不要設置young區大小或比例;
(2)停頓時間不要太嚴格(不能太小)。一般G1小於500ms,但是不要小於100ms或200ms。一般使用100ms或200ms都是可以的。100ms<目標<500ms
減少使用全局變量和大對象;
· 調整新生代的大小到最合適;
· 設置老年代的大小爲最合適;
· 選擇合適的GC收集器