JVM 的调优主要在以下几个方面:
1 内存堆设置
2 GC所用到的eden, survior, old 的设置
3 GC类型的选择
4 尽量减少Minor GC和Full GC的次数
下面从吞吐量和响应时间这两个方面来对这些参数进行设置:
首先进行一些典型的设置:
1) Heap方面: -Xmx: -xms: 设置相同减少内存伸缩带来的时间
2) Young gernation方面:尽量设置新生代内存尽量大一点,但是又不能太大,
1.太大会导致长驻内存的队像不能在tenured generation中存下,会导致fullgc 发生
2 会导致survivor拷贝时间边长
优先响应方面:
1) Young generation: 尽可能设大,直到接近系统的最低响应时间限制(根据实际情况选择).在此种情况下,年轻代收集发生的频率也是最小的.同时,减少到达年老代的对象.
2) old generaton: 使用CMS收集,这个不会停顿,因为是并行处理。同时可以设置参数多少次后进行内存压缩处理。这个主要是用在互联网领域
高吞吐方面:
1) Young generation: 尽可能大
2) old generation: 较小,但是能够容纳live object