jvm支持的垃圾收集器组合

组合选择的标准
- 吞吐量=应用运行时间/总时间
   关注gc总耗时 - 暂停时间
  关注每次gc的耗时 
组合选择的场景


堆的调优
- 一般来说,堆越大越好(gc频率小,但单次gc时间变长)
 - 设置参数 -xms 堆的最小值 -xmx 堆的最大值 每次调整堆大小都会发生fullgc
 
思考:如果为了不发生fullgc,是否就总是设置-xms = -xmx
答案:不是。在设计堆的大小时。设置-xms为预期堆内存。 -xmx设计为比-xms更大的数(前提是内存允许)。这样既可以降低堆调整的频率,还可以提高系统的负载能力
新生代调优--大小
- 增大eden区。(减少gc频率,不一定增大gc时间。因为时间跟存活对象成正比)
 
新生代调优--晋升
- 尽可能让对象停留在survivor中。降低majorgc的频率
 - 但是要避免对象在survivor中不断复制
 - 设置对象晋升年龄的极限值,没熬过一次gc,年龄就+1。到达极限值就晋升(但不绝对)
 
旧生代调优
- 调优尽量先调新生代
 - 平衡老年代的大小,不能太大或太小
 - 直接加cpu,来的最快
 
调优工具

