JVM体系结构与GC调优(二)
jvm支持的垃圾收集器组合
组合选择的标准
- 吞吐量=应用运行时间/总时间
关注gc总耗时 - 暂停时间
关注每次gc的耗时
组合选择的场景
堆的调优
- 一般来说,堆越大越好(gc频率小,但单次gc时间变长)
- 设置参数 -xms 堆的最小值 -xmx 堆的最大值 每次调整堆大小都会发生fullgc
思考:如果为了不发生fullgc,是否就总是设置-xms = -xmx
答案:不是。在设计堆的大小时。设置-xms为预期堆内存。 -xmx设计为比-xms更大的数(前提是内存允许)。这样既可以降低堆调整的频率,还可以提高系统的负载能力
新生代调优--大小
- 增大eden区。(减少gc频率,不一定增大gc时间。因为时间跟存活对象成正比)
新生代调优--晋升
- 尽可能让对象停留在survivor中。降低majorgc的频率
- 但是要避免对象在survivor中不断复制
- 设置对象晋升年龄的极限值,没熬过一次gc,年龄就+1。到达极限值就晋升(但不绝对)
旧生代调优
- 调优尽量先调新生代
- 平衡老年代的大小,不能太大或太小
- 直接加cpu,来的最快
调优工具
相关推荐
chensen 2020-11-14
lwnylslwnyls 2020-11-06
ATenhong 2020-10-15
yanzhelee 2020-10-13
佛系程序员J 2020-10-10
guojin0 2020-10-08
佛系程序员J 2020-10-08
bluewelkin 2020-09-16
wwzaqw 2020-09-04
zhongdaowendao 2020-09-02
favouriter 2020-08-18
奎因amp华洛 2020-08-15
一青年 2020-08-13
千锋 2020-08-10
nangongyanya 2020-08-09
dongxurr 2020-08-08
明天你好 2020-08-03
kyelu 2020-08-03
Ashes 2020-08-03