年轻代大小选择
响应时间优先的应用:尽量设大,直到接近系统的最低响应时间限制(根据实际状况选择)。在此种状况
下,年轻代收集发生的频率也是最小的。同时,减小到达年老代的对象。
吞吐量优先的应用:尽量的设置大,可能到达Gbit的程度。由于对响应时间没有要求,垃圾收集能够并行进
行,通常适合8CPU以上的应用。
年老代大小选择
响应时间优先的应用:年老代使用并发收集器,因此其大小须要当心设置,通常要考虑并发会话率和会话持续
时间等一些参数。若是堆设置小了,能够会形成内存碎片、高回收频率以及应用暂停而使用传统的标记清除方
式;若是堆大了,则须要较长的收集时间。最优化的方案,通常须要参考如下数据得到:
1. 并发垃圾收集信息
2. 持久代并发收集次数 html
3. 传统GC信息
4. 花在年轻代和年老代回收上的时间比例
减小年轻代和年老代花费的时间,通常会提升应用的效率
吞吐量优先的应用
通常吞吐量优先的应用都有一个很大的年轻代和一个较小的年老代。缘由是,这样能够尽量回收掉大部分短
期对象,减小中期的对象,而年老代尽存放长期存活对象。
较小堆引发的碎片问题
由于年老代的并发收集器使用标记、清除算法,因此不会对堆进行压缩。当收集器回收时,他会把相邻的空间
进行合并,这样能够分配给较大的对象。可是,当堆空间较小时,运行一段时间之后,就会出现“碎片”,如
果并发收集器找不到足够的空间,那么并发收集器将会中止,而后使用传统的标记、清除方式进行回收。若是
出现“碎片”,可能须要进行以下配置:
1. -XX:+UseCMSCompactAtFullCollection:使用并发收集器时,开启对年老代的压缩。
2. -XX:CMSFullGCsBeforeCompaction=0:上面配置开启的状况下,这里设置多少次Full GC后,对年老
代进行压缩 算法
调优参考文献:http://www.javashuo.com/article/p-gedyqnwy-eu.htmlsegmentfault
https://blog.csdn.net/rickyit/article/details/53895060并发
http://www.javashuo.com/article/p-nqwdteob-md.html优化
https://www.cnblogs.com/kongzhongqijing/articles/3625340.htmlspa