JVM垃圾回收总结
2015-11-18 18:40
309 查看
一、垃圾回收的算法
1、引用记数法 记录对像的引用数量
2、标记-清除算法 会产生空间碎片
3、复制算法 需要使用两块大小相同的内存,应用于新生代
4、标记压缩算法 将所有存活对像压缩到内存的一端,再清理边界外所有空间,应用于老年代
二、垃圾回收的类型
伦理片 http://www.dotdy.com/
1、新生代串行收集器 特点:独占、单线程、串行,复制算法 2、老年代串行收集器 特点:独占、单线程、串行,标记-压缩算法
3、新生代并行收集器 特点:独占、多线程、并行,复制算法,关注系统吞吐量
4、老年代并行收集器 特点:独占、多线程、并行,标记-压缩算法,关注系统吞吐量
5、CMS(并发标记清除)收集器 特点:非独占、多线程,标记-清除算法
工作步骤:初始标记(独占)、并发标记、重新标记(独占)、并发清理、并发重置
CMS收集器执行过程中,出现内存不足会导致回收失败,这时JVM会启动老年代串行收集器回收
三、垃圾回收调优参数
1、串行GC调优参数
-XX:+UseSerialGC:新生代和老年代使用串行收集器
-XX:SurvivorRatio:设置eden区和survivor区大小的比例
-XX:PretenureSizeThreshold:设置大对像直接进入老年代的对像大小阈值
-XX:MaxTenuringThreshold:设置对像进行老年代的年龄阈值
2、并行GC调优参数
-XX:+UseParNewGC:新生代使用并行收集器
-XX:+UseParallelOldGC:老年代使用并行收集器
-XX:ParallelGCThreads:设置用于垃圾回收的线程数,通常和CPU数量相等
-XX:MaxGCPauseMillis:设置最大垃圾收集停顿时间
-XX:GCTimeRatio:设置吞吐量的大小,是一个0~100的整数
-XX:+UseAdaptivesSizePolicy:打开GC自适应策略
3、CMS调优参数
影音先锋电影 http://www.iskdy.com/
-XX:+UseConcMarkSweepGC:新生代使用并行收集器,老年代使用CMS+串行收集器
-XX:ParallelCMSThreads:设置用于CMS垃圾回收的线程数
-XX:CMSInitiatingOccupancyFraction:设置CMS收集器在老年代空间被使用多少后触发,默认为68%
-XX:+UseCMSCompactAtFullCollection:设置CMS收集器在完成垃圾回收后是否要进行一次内存碎片整理
-XX:CMSFullGCsBeforeCompaction:设置进行多少次CMS垃圾回收后,进行一次内存压缩
-XX:+CMSClassUnloadingEnabled:允许对类元数据进行回收
-XX:+CMSParallelRemarkEnabled:启用并重新标记
相关文章推荐
- Codeforces Round #286 (Div. 1) D. Mr. Kitayuta's Colorful Graph (并查集 STL)
- 大型网站之分布式会话管理
- java读取目录下所有csv文件数据,存入三维数组并返回
- Android 屏幕适配方案
- 如何在github上寻找漏洞
- (java)Balanced Binary Tree
- 字符串加密
- MongoDB小结16 - find【查询条件$in】
- 计算机术语 blob
- (java)Power of Two
- tomcat源代码系列(三)--启动过程
- 给父母设计的一款手机
- haproxy安装配置介绍
- Android Studio中代码混淆
- android 设置textview中划线效果
- js常用事件总结
- js常用事件总结
- Activity回收时候fragment的异常
- Intel Threading Building Blocks 编程指南 : 内存分配
- OSGCopy例子解析