JVM垃圾回收总结

转载 2015年11月18日 18:40:15




博客分类: 


一、垃圾回收的算法

 

  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:启用并重新标记




JVM简单个人总结(一)

说明:这篇文章只是个人对JVM的初步探讨总结,很多概念来自网络,加入部分个人理解,也许个人理解的地方有误,也恳请看到的同学帮忙指出,关于JVM的具体知识可以阅读《深入理解Java虚拟机:JVM高级特性...
  • KevinWu93
  • KevinWu93
  • 2016年03月16日 23:11
  • 467

JVM调优总结(这个总结得比较全面)

堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为...
  • wuzhilon88
  • wuzhilon88
  • 2015年10月17日 10:41
  • 11440

JVM 基础知识

几年前写过一篇关于JVM调优的文章,前段时间拿出来看了看,又添加了一些东西。突然发现,基础真的很重要。学习的过程是一个由表及里,再由里及表的过程,所谓的“温故而知新”。而真正能走完这个轮回的人,也就能...
  • sunboy_2050
  • sunboy_2050
  • 2013年08月17日 05:42
  • 8675

JVM总结--JVM体系结构

一. 虚拟机         虚拟机是模拟执行某种指令集体系结构(ISA)的软件,是对操作系统和硬件的一种抽象。 图1 计算机系统中的抽象         计算机系统的这种抽象类...
  • samjustin1
  • samjustin1
  • 2016年08月15日 22:03
  • 588

深入理解JVM(我的总结)

Java程序通过编译生成class文件,生成的class文件通过JVM(Java Virtual Mechine)来运行,下面我们就来聊聊JVM。         JVM在执行Java程序的过程中会把...
  • u010814766
  • u010814766
  • 2015年07月07日 09:58
  • 4189

JVM系列4:JVM总结

JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。 java编译器只要面...
  • a910626
  • a910626
  • 2016年04月10日 15:48
  • 582

jvm调优 总结 for面试

1.栈和堆 栈是运行时的单位,解决程序如何执行,代表处理逻辑 堆是存储单位,解决数据存储问题,代表数据 2. 分配内存按照8的整数倍 对象的引用: 强引用(声明对象时虚拟机生成的引用,不会被回收), ...
  • u014717807
  • u014717807
  • 2017年05月18日 17:03
  • 1172

互联网公司面试问题总结之虚拟机JVM

一、虚拟机 部分一: 1、说一说GC算法(重点重点)还是那句话:举一反三,拿起纸笔给面试官讲 (1)从JVM内存模型开始说起,在纸上画出大概的组成部分,然后说出每个组成部分的特点 (2) 开始...
  • u011863767
  • u011863767
  • 2016年10月15日 22:25
  • 366

JVM知识点总结

转自:http://www.ityouknow.com/java/2017/03/01/jvm-overview.html 在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内...
  • he90227
  • he90227
  • 2017年03月23日 13:15
  • 2165

JVM知识点总结

1、JVM运行时内存划分
  • hbtj_1216
  • hbtj_1216
  • 2017年07月29日 10:51
  • 240
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JVM垃圾回收总结
举报原因:
原因补充:

(最多只允许输入30个字)