首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JVM 之 ParNew 和 CMS 日志分析

今天这篇文章主要是对生产环境中(Java7)常用的两种垃圾收集器(ParNew:年轻代,CMS:老年代)从日志信息上进行分析,做一下总结,这样当我们在排查相应的问题时,看到 GC 的日志信息,不会再那么陌生...http://matt33.com/2016/09/18/jvm-basic2/ ParNew 收集器 ParNew 收集器是年轻代常用的垃圾收集器,它采用的是复制算法,youngGC 时一个典型的日志信息如下所示...: 2018-04-12T13:48:26.134+0800: 15578.050: [GC2018-04-12T13:48:26.135+0800: 15578.050: [ParNew: 3412467K...:收集器名称,这里是 ParNew 收集器,它使用的是并行的 mark-copy 算法,GC 过程也会 Stop the World; 3412467K->59681K:收集前后年轻代的使用情况,这里是...cleanup. 9702786K->6354533K:收集前后整个堆的使用情况,这里是 9.25G->6.06G; 24746432K:整个堆的容量,这里是 23.6G; 0.0974940 secs:ParNew

1.1K40
您找到你想要的搜索结果了吗?
是的
没有找到

探索ParNew和CMS垃圾回收器

今天我们就来探索一下,ParNew和CMS垃圾回收器的实现过程。 ParNew垃圾回收器 现在,如果没有使用G1垃圾回收器,通常情况下大家都是用的ParNew作为新生代的垃圾回收器。...所以ParNew垃圾回收器主打的就是多线程的垃圾回收机制,老版本的Serial垃圾回收器主打的是单线程垃圾回收,他们都是对新生代进行垃圾回收的,唯一的区别就是单线程和多线程的区别,垃圾回收的算法是一样的...那么如何指定垃圾回收器为ParNew呢? 很简单,只要使用“-XX:+UseParNewGC”选项,只要加入这个选项,JVM启动之后对新生代的垃圾回收就是使用的ParNew垃圾回收器了。...默认情况下,如果指定为ParNew垃圾回收器,它会给自己设置与CPU核心数相同的垃圾回收线程。...总结 今天我们对ParNew做了一个简单的介绍,其实就是并发机制。同时比较详细的介绍了CMS垃圾回收器的运行过程。 相信小伙伴们能够对它们有一个深刻的印象,那么新一代的G1垃圾回收器又是什么机制呢?

93320

【Java 虚拟机原理】垃圾收集器 ( Serial | ParNew | Parallel Scavenge | CMS | Serial Old - MSC | Parallel Old )

文章目录 前言 一、HotSpot 虚拟机的垃圾收集器 二、年轻代垃圾收集器 1、 串行收集器 ( Serial ) 2、 ParNew 收集器 3、 Parallel Scavenge 收集器 二、...老年代垃圾收集器 前言 参考 【Android 内存优化】垃圾回收算法 ( 分代收集算法 | Serial 收集器 | ParNew 收集器 | Parallel Scavenge 收集器 | CMS...虚拟机的垃圾收集器 : 上层的是 年轻代 内存区域的垃圾收集器 , 下层是 老年代 内存区域的垃圾收集器 , Tenured generation 就是老年代 ; 年轻代的垃圾回收器 : Serial ParNew...Old ( MSC ) Parallel Old Serial 垃圾回收器 是 单线程垃圾收集器 , 垃圾回收时 , 需要暂停当前的 Java 线程 , 进行垃圾回收 , 这样会造成程序卡顿 ; ParNew...收集器 ParNew 收集器 : ① 运行区域 : ParNew 垃圾回收器 在 年轻代 内存区域中收集要回收的内存 ; ② 垃圾回收算法 : 复制算法 ; ③ 运行机制 : 垃圾回收线程运行时 ,

1.1K10

常用新生代垃圾收集器

垃圾收集器 ParNew同样用于新生代,是Serial的多线程版本,并且在参数,算法(同样的复制算法)和Serial相同....Par是Parallel的缩写,多线程的意思,但是这里的多线程仅仅指垃圾收集多线程并行,并不是垃圾收集和程序并行运行.ParNew也需要暂停一切工作,然后多线程并行垃圾收集....应用场景 在Server模式下,ParNew是一个非常重要的收集器,因为除Serial外,目前只有ParNew与CMS收集器配合工作....":强制指定使用ParNew; "-XX:ParallelGCThreads":指定垃圾收集的线程数量,ParNew默认开启的收集线程与CPU的数量相同; Parallel scavenge垃圾收集器...Parallel scavenge是一个新生代垃圾收集器,它是用复制算法的垃圾收集器,又是多线程并行的垃圾收集器,和ParNew类似.吞吐量优先的垃圾收集器,是Java1.8默认的新生代垃圾收集器.

66900

JVM GC回收器

新生代串行回收器 老年代串行回收器 标记压缩算法 命令 -XX:+UseSerialGC :新生代老年代都使用串行回收器 -XX:+UseParNewGC :新生代使用ParNew...-XX:+UseParallelGC :新生代使用ParallelGC回收器,老年代使用串行回收器 0x02: 并行回收器 概念 多线程进行垃圾回收的回收器 分类 (1)新生代 ParNew...回收器 只是简单的将串行回收器多线程化 -XX:+UseParNewGC :新生代使用 ParNew 并行回收器,老年代串行回收器 -XX:+UseConcMarkSweepGC...:新生代使用ParNew 并行回收器,老年代使用 CMS -XX:ParallelGCThreads :设置多线程数量,最好与 CPU 个数保持一致(CPU < 8 ),或者 3 + ((5*...cpu_count)/8) (2)新生代ParallelGC 回收器 和 ParNew 回收器差不多,不过更关注吞吐量 -XX:+UseParallelGC :新生代使用 ParallelGC

26010

JVM-06垃圾收集Garbage Collection(下)【垃圾收集器】

文章目录 思维导图 总览 Serial收集器 Serial Old收集器 ParNew收集器 Parallel Scavenge收集器 Parallel Old收集器 CMS收集器 G1收集器 思维导图...---- ParNew收集器 ParNew收集器是Serial收集器新生代的多线程实现,注意在进行垃圾回收的时候依然会stop the world,只是相比较Serial收集器而言它会运行多条进程进行垃圾回收...ParNew-SerialOld收集器运行示意图 ParNew收集器在单CPU的环境中绝对不会有比Serial收集器更好的效果,甚至由于存在线程交互的开销,该收集器在通过超线程技术实现的两个CPU的环境中都不能百分之百的保证能超越...XX:+USeParNewGC: 打开此开关后,使用ParNew + Serial Old的收集器组合进行内存回收,这样新生代使用并行收集器,老年代使用串行收集器。...---- Parallel Scavenge收集器 Parallel是采用复制算法的多线程新生代垃圾回收器,似乎和ParNew收集器有很多的相似的地方。

23510

性能优化-各种GC用法和关系

常见的垃圾收集器有Serial GC、ParNew GC、CMS GC、Parallel GC、G1 GC Serial GC: 优点:单线程精简的GC实现,无需维护复杂的数据结构,初始化简单,是client...命令:-XX:+UseSerialGC 日志:DefNew是新生代,Tenured是老年代 ParNew GC: 新生代GC实现,是SerialGC的多线程版本,最常见的应用场景是配合老年代的CMS GC...命令:-XX:+UseParNewGC 日志:ParNew是新生代,Tenured是老年代 CMS(Concurrent Mark Sweep)GC: 优点: 基于标记-清除(Mark-Sweep)算法...同时年轻代 触发多线程ParNew GC 日志: ParNew是新生代,CMS是老年代 Parrallel GC: 在JDK8等版本中,是server模式JVM的默认GC选择,也被称为吞吐量优先的GC,...当老年代的内存使用率达到某个阈值就会触发混合GC 如何选择GC(JKD9之前的版本) 如果你的程序追求低延迟,用户交互度较为频繁,那你可以采用ParNew + CMS组合(这也是淘宝早期的选择,但后面采用了自研

65410
领券