1)jvm调优的本质:通过调节内存大小来平衡GC频率和单次GC的时长。
2)目的:防止OOM>FGC>YGC
3)标准:通过调整jvm参数(堆内存等):
让一次gc在100ms以内
5min一次YGC
1天一次FGC
-------------
有的人说搞个大一点的内存,假如是32G的机器,虽然发生GC的频率减少,但是一次GC的时长变大了,而且出了问题,32G的内存怎么dump出来分析呢?得搞一个非常大的内存的机器,分析也是困难,因此不是内存越大越好。
为何限制到32G呢?这是因为指针压缩,指针压缩底层是用int表示,因此是4个字节,也就是最大数字是32位,也就是表示最大数字是2的32次方,加上左移3位(指针压缩),因此最大内存是2的35次方,也就是2的30次 * 2的次方,也就是1G * 32 = 32G