知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累。不占太多时间,不停的来唤醒你记忆深处的知识点。

一、GC回收器的 4个指标:

1.Throughput,非gc时间与总运行时间的比重。

2.Pauses,gc过程中程序的暂停次数,暂停平均时长,最大时长。

3.Footprint ,当前使用堆内存大小。

4.Promptness,无引用的对象多久才被gc。

二、串行垃圾回收器

 原理:暂停所有工作线程,一个一个内存区域来收集。

 建议:一般面向C端用户,不建议使用。

 命令:-XX:+UseSerialGC

 代表回收器: 

   ⑴ Serial    针对新生代

   ⑵ Serial old 针对老年代

三、并行垃圾回收器

  原理:使用多线程进行垃圾回收

  建议:以吞吐量为主服务器

  命令:-XX:+UseParallGC

  代表回收器:

   ⑴ ParNew  针对新生代

  ⑵ Parallel Scavenge 针对新生代,以吞吐量为主

⑶  Parallel Old 针对老年代,以吞吐量位主,可以配合 ⑵ 一起使用

三、并发标记扫描垃圾回收器 CMS

  原理:多线程,标记清理,一般老年代使用,触发Full GC

  建议:以响应时间为主的服务器

  命令:-XX:+UseConcMarkSweepGC

  代表回收器:CMS

  特点:

        1.分两次短暂的暂停,代替整理算法的长暂停

        2.提高响应时间,吞吐量有所下降。

     3.会出现碎片,配合命令 

            -XX:+UseCMSCompactAtFullCollection 

            -XX:CMSFullGCsBeforeCompaction=1 对老年代进行压缩整理,配置进行了多少次Full GC之后执行一次内存压缩。

            -XX:ParallelGCThreads 配置并行垃圾回收线程数

(4).G1垃圾回收器

    原理:分割内存,不同区域。

    建议:堆内存大的情况使用,服务器端适用。

    特点:并行并发进行回收,压缩内存,标记整理

本文由zshipu.com学习笔记或整理或转载,如有侵权请联系,必改之。

Java-100天知识进阶-GC种类-知识铺(六)的更多相关文章

  1. Java-100天知识进阶-GC算法-知识铺(五)

    知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累.不占太多时间,不停的来唤醒你记忆深处的知识点. GC算法 1.标记清除算法 优缺点:不需要额外空间,但是遍历空间花费大,而且会产生大量 ...

  2. Java-100天知识进阶-JVM内存-知识铺(三)

    知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累.不占太多时间,不停的来唤醒你记忆深处的知识点. Java内存模型(JMM) JVM内存模式是JVM的内存分区 Java内存模式是一种虚 ...

  3. Java-100天知识进阶-基本类型-知识铺(一)

    知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累.不占太多时间,不停地来唤醒你记忆深处的知识点. Java的两大数据类型: 一.内置数据类型 二.引用数据类型 内置数据类型 Java语 ...

  4. Java 从入门到进阶之路(十六)

    在之前的文章我们介绍了一下 Java 中类的多态,本章我们来看一下 Java 中类的内部类. 在 Java 中,内部类分为成员内部类和匿名内部类. 我们先来看一下成员内部类: 1.类中套类,外面的叫外 ...

  5. 谈谈Java程序员进阶的那些知识和方向

    谈谈Java程序员进阶的那些知识和方向 记得前段时间看过一篇文章谈到一种程序员叫野生程序员,战斗力极强,可以搞定一切问题,但是通常看问题抓不到本质,或者说是google/baidu/stackover ...

  6. java程序员需要掌握些什么知识

    java程序员需要掌握些什么知识 合格的程序员应具有实际开发能力的Java和J2EE.如今的IT企业需求量大,但人才紧缺的.企业需要大量掌握Java/JEE/Oracle/WebLogic/Websp ...

  7. Java做acm所需要的基础知识之排序问题

    Java做acm所需要的基础知识. 以前做acm的题都是用C/C++来写代码的,在学习完Java之后突然感觉Java中的方法比C/C++丰富很多,所以就整理一下平时做题需要用到的Java基础知识. 1 ...

  8. id,is的用法,小数据池的概念及编码知识进阶

    一:id 查询内存地址 name = 'alex' print(id(name)) li = [1,2,3] print(id(li)) 二:is  判断的是内存地址 name1 = 'alex@' ...

  9. L011系统文件属性知识进阶详解小节

    L011系统文件属性知识进阶详解小节 这节课的内容相对来说较少,一上午加中午就听完了,现在总结一下,最后会有一个相关的面试题. 首先先附上一张图: 今天学习主要跟①和②有关,①为Inode 号 ②为文 ...

随机推荐

  1. pandas 学习 第3篇:Series - 数据处理(应用、分组、滚动、扩展、指数加权移动平均)

    序列内置一些函数,用于循环对序列的元素执行操作. 一,应用和转换函数 应用apply 对序列的各个元素应用函数: Series.apply(self, func, convert_dtype=True ...

  2. DbgUiConnectToDbg(ntdll.dll)函数逆向

    暂时未解决问题: 1.  [fs+0F24h]中存储着什么东西. 答案:其存放着被调试程序的DbgObject句柄._NtCreateDebugObject(ntoskrnl.exe)函数逆向分析 该 ...

  3. WPF中DataGrid在没有数据的时候也可以显示水平滚动条

    今天做项目中遇到个问题,就是页面加载后默认DataGrid是不加载数据的,但是DataGrid的列很多,就导致了运行效果上,此窗口的DataGrid没有水平滚动条,类似图片的效果. 经过百度和摸索,使 ...

  4. vue-路由-显示名称

    显示名称 方式1: <div id="app"> <!-- 分析: --> <!-- 1. 我们要监听到 文本框数据的改变,这样才能知道 什么时候去拼 ...

  5. 配置git远程连接gitlab

    1.本地git下载 2.配置全局的用户名和邮箱,命令分别为 git config --global user.name "username" git config --global ...

  6. 前端开发JS——jQuery常用方法

    jQuery基础(三)- 事件篇   1.jQuery鼠标事件之click与dbclick事件 click方法用于监听用户单击操作,dbclick方法用于监听用户双击操作,这两个方法用法及其类似,所以 ...

  7. echarts水球图编写

    // 前提条件 需要引入这个插件<script src="./echarts-liquidfill.min.js"></script> // 代码 let ...

  8. uni-app学习(四)好用的插件2

    1. uni-app学习(四)好用的插件2 1.1. 树形结构 点击这里 1.2. 下拉刷新上拉加载组件 如果想把下拉上拉做成自定义的,更加好看,可以使用这个插件 地址这里 举个例子 1.3. 浮动键 ...

  9. PL/SQL编写的SQL语句插入SqlPlus时,报错 PLS-00302

    最近刚开始用PL/SQL,然后发现写SQL语句时,运行的时候,会对表中的字段报错. 好像是对字段的使用有问题 原来写的错误代码大概像这样 DECLARE xuehao XSB.id% TYPE; BE ...

  10. 【LeetCode】1056-易混淆数

    易混淆数 给定一个数字 N,当它满足以下条件的时候返回 true:把原数字旋转180°以后得到新的数字.如 0, 1, 6, 8, 9 旋转 180° 以后,得到了新的数字 0, 1, 9, 8, 6 ...