🌈hello,你好鸭,我是Ethan,西安电子科技大学大三在读,很高兴你能来阅读。
✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。
🏃人生之义,在于追求,不在成败,勤通大道。加油呀!
🔥个人主页:Ethan Yankang
🔥推荐:史上最强八股文||一分钟看完我的几百篇博客
🔥温馨提示:划到文末发现专栏彩蛋 点击这里直接传送
🔥本篇概览:详细讲解了ParallelScaveng 收集器:吞吐量优先——垃圾收集器5🌈⭕🔥
【计算机领域一切迷惑的源头都是基本概念的模糊,算法除外】
🌈章节引出:
前一篇章:
🌈章节速览:
16.4 ParallelScaveng 收集器:吞吐量优先
HotSpot的新生代中除了拥有 ParNew 收集器是基于并行回收的以外,Parallel Scavenge 收集器同样也采用了复制算法、并行回收和STW机制。
那么Parallel Scavenge 收集器的出现是否多余?
Parallel Scavenge 收集器的目标是达到一个可控制的吞吐量,它也被称为吞吐量优先的垃圾收集器。自适应调节策略也是ParallelScavenge与ParNew一个重要区别,ParallelScavenge 获取应用程序的运行情况收集系统的性能监控信息,动态调整参数以提供最合适的停顿时间或最大的吞吐量,这种调节方式称为垃圾收集的自适应调节策略。高吞吐量可以高效率地利用 CPU 时间,尽快完成程序的运算任务,主要适合在后台运算而不需要太多交互的任务,例如,那些执行批量处理、订单处理、工资支付、科学计算的应用程序。Parallel Scavenge 收集器在JDK1.6时提供了用于执行老年代垃圾收集的 Parallel Old 收集器,用来代替老年代的 Serial Old收集器。Parallel Old 收集器采用了标记一压缩算法,但同样也是基于并行回收和 STW 机制。
在程序吞吐量优先的应用场景中,ParallelScavenge 收集器和Parallel Old 收集器的组合在 Server 模式下的内存回收性能很不错。Parallel Scavenge/Parallel Old 收集器中 GC线程和用户线程之间的运作关系如图16-12所示。在JDK8中,默认使用此垃圾收集器。
Parallel垃圾收集器常用参数配置如下
(1)-XX:+UseParallelGC: 指定新生代使用Parallel并行收集器执行内存回收任务;XX:+UseParallelOldGC: 指定老年代都是使用并行回收收集器,JDK8默认开启。默认情况下,开启其中一个参数,另一个也会被开启(互相激活)。
(2)-XX:ParallelGCThreads: 设置新生代并行收集器的线程数。一般最好与CPU 核心数量相等,以避免过多的线程数影响垃圾收集性能。
在默认情况下,当CPU核心数量小于8个,ParallelGCThreads 的值等于 CPU 核心数量
当CPU 核心数量大于8个,ParallelGCThreads 的值等于 3+[5*CPU_Count]/8]。
(3)-XX:MaxGCPauseMillis: 设置垃圾收集器最大停顿时间(即STW的时间)。单位是毫秒。为了尽可能地把停顿时间控制在 MaxGCPauseMils 以内,收集器在工作时会调整 Java堆大小或者其他一些参数。
16.5查看-XX:PrintGCDetails详解
若要查看具体的-XX:PrintGCDetails详解,请移步【】
💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
热门专栏推荐
🌈🌈计算机科学入门系列 关注走一波💕💕
🌈🌈CSAPP深入理解计算机原理 关注走一波💕💕
🌈🌈微服务项目之黑马头条 关注走一波💕💕
🌈🌈redis深度项目之黑马点评 关注走一波💕💕
🌈🌈JAVA面试八股文系列专栏 关注走一波💕💕
🌈🌈JAVA基础试题集精讲 关注走一波💕💕
🌈🌈代码随想录精讲200题 关注走一波💕💕
总栏
🌈🌈JAVA基础要夯牢 关注走一波💕💕
🌈🌈JAVA后端技术栈 关注走一波💕💕
🌈🌈JAVA面试八股文 关注走一波💕💕
🌈🌈JAVA项目(含源码深度剖析) 关注走一波💕💕
🌈🌈计算机四件套 关注走一波💕💕
🌈🌈数据结构与算法 关注走一波💕💕
🌈🌈必知必会工具集 关注走一波💕💕
🌈🌈书籍网课笔记汇总 关注走一波💕💕
📣非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤收藏✅ 评论💬,大佬三连必回哦!thanks!!!
📚愿大家都能学有所得,功不唐捐!