JVM垃圾回收器_jdk6默认垃圾回收器

JVM垃圾回收器_jdk6默认垃圾回收器JVM垃圾回收器垃圾回收器分类说明垃圾回收器工作原理垃圾回收器分类说明如果说垃圾回收算法是内存回收的方法论,那么垃圾回收器就是内存回收的具体实现,下图展示了7中作用于不同分代的收集器。其中用于新生代的回收器包括Serial,PraNew,ParallelScavenge,回收老年代的收集器包括SerialOld,Parallelold,CMS,还有作用于回收整个java堆的G1收集器,不同收集器之间的连线表示他们可以搭配使用。Serial收集器(复制算法):新生代单线程收集器,标记和清理

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

垃圾回收器分类说明

如果说垃圾回收算法是内存回收的方法论,那么垃圾回收器就是内存回收的具体实现,下图展示了7中作用于不同分代的收集器。其中用于新生代的回收器包括Serial,PraNew,Parallel Scavenge,回收老年代的收集器包括 Serial Old ,Parallel old,CMS,还有作用于回收整个java堆的G1收集器,不同收集器之间的连线表示他们可以搭配使用。
在这里插入图片描述

  1. Serial收集器(复制算法):新生代单线程收集器,标记和清理都是单线程的,优点是简单高效
  2. ParNew收集器(复制算法):新生代多线程收集器,实际是Serial 收集器的多线程版本,在多核CPU的环境下有着比Serial跟好的表现。
  3. Parallel Scavenge收集器(复制算法):新生代并行收集器,追求高吞吐量,高效利用CPU,吞吐量=用户线程时间/(用户线程时间+GC线程时间),高吞吐量课高效率的利用CPU时间,尽快完成程序计算任务,适合后台应用等交互相应要求不高的场景;
  4. Serial Old收集器(标记-整理算法):老年代单线程收集器,Serial收集器的老年代版本
  5. Parallel Old 收集器(标记-整理算法):老年代多线程并行收集器,吞吐量优先,Parallel Scavenge 收集器的老年代版本
  6. CMS(Concurrent Mark Sweep)收集器(标记-清除算法) :老年代并行收集器,以获取最短回收停顿时间为目标的收集器,具有高并发,低停顿的特点,最求最短的GC回收停顿时间。CMS 是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器,对于要求服务器响应速度的应用上,这种垃圾回收器非常合适。在启动JVM参数加上-XX:+UseConcMarkSweepGC ,这个参数表示对于老年代的回收采用CMS。CMS 是采用标记-清除算法所以gc的时候会产生大量的内存碎片,当剩余内存不满足程序运行要求时,系统将会出现Concurrent ModeFailure,临时CMS 会采用Serial Old 回收器进行垃圾回收,此时性能将会被降低。
  7. G1(Garbage First) 收集器(标记-整理算法):java堆并行收集器,G1收集器是JDK1.7提供的一个新的收集器,G1收集器基于“标记-整理”算法实现,也就是说不会产生哪内存碎片。此外G1 收集器不同于之前的收集器的一个重要特点:G1回收的范围是整个java堆,而之前六种收集器回收的范围仅限于老年代或新生代。

垃圾回收器工作原理

分代回收器有两个分区,老年代和新生代,新生代默认的空间占比总空间的1/3,老年代的默认占比2/3。
新生代使用的是复制算法,新生代里有三个区,Eden,To Survivor ,From Survivor,他们默认占比是8:1:1,执行流程如下:

  1. 把Eden+From Survivor 存活的对象放入 To Survivor 区
  2. 清空 Eden 和From Survivor 分区
  3. From Survivor 和To Survivor 分区交换,From Survivor 变TO Survivor ,To Survivor 变 From Survivor
    每次都在FromSurvivor 到To Survivor 移动时都存活的对象,年龄就加一,当你年龄达到15(默认配置是15)时,升级为老年代。大对象也会直接进入老年代。老年代当空间占比占用达到某个值之后就会触发全局垃圾回收,一般使用标记整理的执行算法,以上这些循环往复就构成了整个分代垃圾回收的整体执行流程。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194847.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深度学习(GoogLeNet)

    深度学习(GoogLeNet)1GoogLeNet的介绍1.1GoogLeNet的简介GoogLeNet模型是由谷歌(Google)团队开发出来的卷积神经网络,它是2014年ImageNet挑战赛的冠军模型。相比于AlexNet模型,GoogLeNet模型的网络结构更深,共包括87层。尽管模型结构变得更复杂,但参数量更少了。GoogLeNet模型的参数量为5941552个,仅为AlexNet模型参数量的1/10。这主要归功于GoogLeNet创新性地采用了Inception模块。感兴趣的读者可以阅读原始顶会顶刊http://

    2022年8月14日
    5
  • IPV6 阿里DDNS

    IPV6 阿里DDNSIPV6阿里DDAS因为需要在家搭建一套环境,并且需要公网能访问。国内的ipv4的地址,各大运营商基本都不会分配ipv4地址(电信宽带好像有地方可以,但是听说很贵),而且是动态的,每过段时间就会改变。发现移动宽带的公网ipv6地址是可以获取到的,但是也会动态刷新。想稳定访问就加上阿里的ddns的域名访问。###1.准备工作因为宽带接入家里基本是都是需要通过光猫拨号后,再接入路由器。这样就拿不到真实的公网ipv6地址,需要先将光猫中的设置改为桥接模式,再让路由器输入宽带账户和密码拨号。这个过程我调

    2022年6月14日
    38
  • java实现各种数据统计图(柱形图,饼图,折线图)

    java实现各种数据统计图(柱形图,饼图,折线图)

    2021年12月16日
    45
  • 图的同构[通俗易懂]

    图的同构[通俗易懂]图的同构Abstract图的同构为什么要研究图的同构满足什么条件的图才是图的同构同构的图案例任意两个图形,如何判定图的同构图同构的必要条件,也就是说两个图如果同构,会存在的特征图同构的必要条件举例Abstract声明:本文只为我闲暇时候学习所做笔记,仅供我无聊时复习所用,若文中有错,误导了读者,敬请谅解!!!图的同构参见我的语雀:图论:https://www.yuque.com/jhongt…

    2022年4月19日
    81
  • MySQL8.0 驱动jar包[通俗易懂]

    MySQL8.0 驱动jar包[通俗易懂]链接:https://pan.baidu.com/s/1gTKoAYoKVoo8pitZGLeAbQ提取码:clhp

    2022年5月21日
    32
  • power函数_power pivot函数

    power函数_power pivot函数#include<stdio.h>#include<math.h>//power函数doublepower(doublex,doubley);intmain(){ do

    2022年8月5日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号