`
ol_beta
  • 浏览: 289888 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

一些参数,弥补CMS(Concurrent Mark-Sweep)收集器的缺点

阅读更多

 

参数根据具体应用设置,不是有参数就好。

1.关于碎片问题:

CMS采用Mark-Sweep算法进行垃圾会后,不会对堆空间进行整理和压缩,每次回收后不可避免会有一些碎片产生。
-XX:+UseCMSCompactAtFullCollection   default true 对老年代进行压缩,可能影响性能,但是可以消除碎片。
-XX:CMSFullGCsBeforeCompaction =n CMS进行n次full gc后进行一次压缩。如果n=0,每次full gc后都会进行碎片压缩

2.关于CPU问题

CMS需要CPU有更多的“核”,在CMS活动的时候,也会占用较多的“核”。
–XX:+CMSIncrementalMode   default false 并发收集递增进行,周期性把cpu资源让给正在运行的应用。
–XX:+CMSIncrementalPacing  default false 根据应用程序的行为自动调整每次执行的垃圾回收任务的数量
–XX:ParallelGCThreads=n   (ncpus <= 8) ? ncpus : 3 + ((ncpus * 5) / 8) 并发垃圾回收线程数
-XX:CMSIncrementalDutyCycleMin=n  default 0  每次增量回收垃圾的占总垃圾回收任务的最小比例
-XX:CMSIncrementalDutyCycle=n  default 10 每次增量回收垃圾的占总垃圾回收任务的比例

3.关于空间问题

CMS需要更多的内存,一方面是碎片问题,另一方面是对老年代回收不是在老年代满的时候,而是当老年代内存达到一定比例。
-XX:CMSInitiatingOccupancyFractio=n  当老年代内存使用达到n%,开始会后 jdk5 默认是68% jdk6默认92% CMSInitiatingOccupancyFraction = (100 - MinHeapFreeRatio) + (CMSTriggerRatio * MinHeapFreeRatio / 100)
分享到:
评论

相关推荐

    了解CMS(ConcurrentMarkSweep)垃圾回

    【CMS(Concurrent Mark Sweep)垃圾回收器】是Java虚拟机(JVM)中的一种垃圾收集器,专门针对老年代的内存管理。CMS回收器的主要目标是减少垃圾收集时的应用程序暂停时间,以提高用户体验。它引入了并发模式,允许...

    Java理解CMS收集器.pdf

    CMS(Concurrent Mark Sweep)收集器是Java虚拟机中的一种垃圾收集器,主要针对老年代的内存回收,其特点是并发和低停顿。CMS收集器的主要目标是在尽可能短的时间内完成垃圾收集,减少应用程序的暂停时间,提高用户...

    JAVA虚拟机精讲

    字节码的编译原理、字节码的内部组成结构、通过源码的方式剖析HotSpot VM 的启动过程和初始化过程、Java 虚拟机的运行时内存、垃圾收集算法、垃圾收集器(重点讲解了Serial 收集器、ParNew 收集器、Parallel 收集器...

    Java虚拟机精讲.高翔龙.带书签完整版.pdf

    字节码的编译原理、字节码的内部组成结构、通过源码的方式剖析HotSpot VM 的启动过程和初始化过程、Java 虚拟机的运行时内存、垃圾收集算法、垃圾收集器(重点讲解了Serial 收集器、ParNew 收集器、Parallel 收集器...

    JAVA虚拟机精讲 pdf

    字节码的编译原理、字节码的内部组成结构、通过源码的方式剖析HotSpot VM 的启动过程和初始化过程、Java 虚拟机的运行时内存、垃圾收集算法、垃圾收集器(重点讲解了Serial 收集器、ParNew 收集器、Parallel 收集器...

    jvm性能调优-垃圾收集器parnew&CMS底层三色标记算-performance-gc-parnew-cms.zip

    本文将深入探讨两个重要的垃圾收集器——ParNew和Concurrent Mark Sweep (CMS) ——以及它们在JVM性能调优中的作用,特别是基于三色标记算法的实现。 首先,ParNew垃圾收集器是新生代(Young Generation)的默认...

    cms-java-源码

    【CMS(Concurrent Mark Sweep)】是Java垃圾收集器的一种,它是HotSpot虚拟机中用于老年代内存管理的并发标记清除算法。这个源码包"cms-java-源码.zip"显然是针对CMS垃圾收集器的Java实现进行的开源分享,旨在帮助...

    JVM中CMS收集器1

    CMS(Concurrent Mark Sweep)收集器,全称为"Mostly Concurrent Mark and Sweep Garbage Collector",是Java虚拟机(JVM)中一种旨在减少老年代(Old Generation)垃圾回收时停顿时间的并发垃圾收集器。它采用了...

    61-JVM之CMS收集器与G1收集器1

    本篇文章主要探讨的是两种高级垃圾收集器:CMS(Concurrent Mark Sweep)收集器和G1(Garbage-First)收集器。 CMS收集器以最小化应用程序停顿时间为目标,适用于对响应时间要求严格的互联网或B/S系统服务端。它...

    04-VIP-JVM垃圾收集器详解1

    4. CMS(Concurrent Mark Sweep)收集器(-XX:+UseConcMarkSweepGC(old)) CMS收集器是第一个实现并发垃圾收集的收集器,目标是缩短垃圾收集时用户的停顿时间,适合用户体验要求较高的应用。CMS收集器采用标记-清除...

    java虚拟机精讲(电子工业出版社出版)

    HotSpot VM 的启动过程和初始化过程、Java 虚拟机的运行时内存、垃圾收集算法、垃圾收集器(重点讲解了Serial 收集器、ParNew收集器、Parallel收集器、CMS(Concurrent-Mark-Sweep)收集器和 G1(Garbage-First)...

    JDK11-hotspot-virtual-machine-garbage-collection-tuning-guide

    * Concurrent Mark-and-Sweep (CMS) 垃圾收集器:使用多线程进行垃圾收集,适合需要低 pause 时间的应用程序。 * G1 垃圾收集器:使用Region-based垃圾收集,适合需要高吞吐量和低 pause 时间的应用程序。 垃圾收集...

    降低Java垃圾回收开销的5条建议

    保持GC低开销的窍门有哪些?  随着一再拖延而即将发布的 Java9,G1(“Garbage First”)垃圾回收器将被成为 HotSpot 虚拟机默认的垃圾回收器。...CMS(“Concurrent Mark-Sweep”)收集器与 parallel GC 相比,它将回收过

    golang 50k 高阶面试题

    而提供的部分内容,则详细介绍了CMS(Concurrent Mark-Sweep)垃圾回收器的面试常见问题,包括其工作原理、特点和面试官可能探询的方向。 在Java虚拟机(JVM)中,CMS垃圾回收器是一种以获取最短回收停顿时间为目标...

    JVM常用的GC策略介绍

    **定义与特点**:CMS(Concurrent Mark Sweep)收集器是一种低延迟的垃圾收集器,特别适用于那些不允许长时间暂停的应用场景。它主要用于老年代,采用了标记-清除算法。 **优缺点**: - **优点**:可以显著减少应用...

    JDK19-hotspot-virtual-machine-garbage-collection-tuning-guide

    3. Concurrent Mark-and-Sweep(CMS)垃圾收集器:CMS垃圾收集器使用标记-清除算法,适合大型应用程序。 4. Garbage-First(G1)垃圾收集器:G1垃圾收集器是Java 7中引入的新型垃圾收集器,使用增量式标记-清除算法...

    漫谈Java垃圾收集器.pdf

    * Concurrent Mark and Sweep(CMS)GC:并发垃圾收集器,使用标记-清理-整理算法。 CMS垃圾收集器的工作流程包括: 1. 初始标记:标记从roots直接可达的对象。 2. 并发标记:从young generation中标记可达的对象...

    HotSpot GC官网文档截图 - 20200917

    3. **CMS(Concurrent Mark Sweep)收集器** (8 Concurrent Mark Sweep (CMS) Collector .png) - CMS收集器是一种低暂停时间的垃圾收集策略,它在大部分时间与应用程序线程并发运行,只有在最后的整理阶段会短暂...

Global site tag (gtag.js) - Google Analytics