Concurrent Mark Sweep (CMS) Collector
it is designed for applications that prefer shorter garbage collection pauses and that can afford to share processor resources with the garbage collector while the application is running.
Table 8-1, "Command-Line Options for i-cms" list command-line options that control the i-cms mode. The section Recommended Options suggests an initial set of options.Table 8-1 Command-Line Options for i-cms
|
Enables incremental mode. Note that the CMS collector must also be enabled (with |
disabled |
disabled |
|
Enables automatic pacing. The incremental mode duty cycle is automatically adjusted based on statistics collected while the JVM is running. |
disabled |
disabled |
|
The percentage (0 to 100) of time between minor collections that the CMS collector is allowed to run. If |
50 |
10 |
|
The percentage (0 to 100) that is the lower bound on the duty cycle when |
10 |
0 |
|
The percentage (0 to 100) used to add conservatism when computing the duty cycle |
10 |
10 |
|
The percentage (0 to 100) by which the incremental mode duty cycle is shifted to the right within the period between minor collections. |
0 |
0 |
|
The percentage (0 to 100) used to weight the current sample when computing exponential averages for the CMS collection statistics. |
25 |
25 |
Recommended Options
To use i-cms in Java SE 8, use the following command-line options:
-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode \ -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
The first two options enable the CMS collector and i-cms, respectively. The last two options are not required; they simply cause diagnostic information about garbage collection to be written to standard output, so that garbage collection behavior can be seen and later analyzed.
For Java SE 5 and earlier releases, Oracle recommends using the following as an initial set of command-line options for i-cms:
-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode \ -XX:+PrintGCDetails -XX:+PrintGCTimeStamps \ -XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin=0 -XX:CMSIncrementalDutyCycle=10
The same values are recommended for JavaSE8 although the values for the three options that control i-cms automatic pacing became the default in JavaSE6.
G1 Collector
The G1 collector achieves high performance and pause time goals through several techniques.G1 is planned as the long term replacement for the Concurrent Mark-Sweep Collector (CMS).
相关推荐
Java性能调优主要聚焦在JVM的优化,其中...总的来说,Java性能调优涉及到对JVM内存模型的深入理解,合理配置JVM参数以优化内存使用,以及通过分析GC日志来改进垃圾收集的效率,从而避免或减少OOM异常,提升应用性能。
选择合适的垃圾收集器(如串行、并行、CMS或G1)并调整相关参数(如新生代和老年代大小),可以帮助优化Java堆的使用,减少GC暂停时间,从而提高应用程序的响应速度。 总之,Java性能调优是一个复杂且细致的过程,...
1. **垃圾收集器的选择**:不同的垃圾收集器适用于不同的场景,如CMS、G1等。 2. **内存分配**:合理配置年轻代和老年代的比例,可以减少垃圾回收的频率。 3. **线程堆栈大小**:根据程序的特点调整线程堆栈大小...
本书将介绍不同类型的垃圾收集器,如Serial、Parallel、CMS、G1、ZGC等,以及如何根据应用特点选择合适的GC策略。 3. **线程与并发**:在多核处理器环境下,充分利用并发能力至关重要。书籍会涉及线程池的配置与...
2. 垃圾收集器选择:不同的GC策略适用于不同的场景,例如Serial GC适合单线程环境,Parallel GC和Concurrent Mark Sweep (CMS) GC适用于多核CPU环境,G1 GC则提供了更好的停顿时间控制。 3. 压缩比优化:-XX:+...
Java性能调优是Java开发中的重要环节,它关乎应用程序的运行效率、资源占用以及用户体验。这份"java性能调优及原理介绍"的压缩包文件,很显然是为了帮助开发者深入理解并掌握这一技能。以下是根据标题和描述提炼出的...
常见的垃圾收集器有Serial、Parallel、CMS和G1等,它们分别针对不同的应用场景和性能需求。通过合理选择垃圾收集器并调整其参数,可以优化应用程序的响应时间和吞吐量。 JVM参数是调优时必须了解和掌握的内容。JVM...
- CMS/G1参数调整:例如设置并发比、初始暂停时间目标等,平衡响应速度与吞吐量。 4. **性能监控与诊断工具** - JVisualVM:官方提供的全功能JVM监控工具,包括内存、线程、类加载、CPU等监控。 - JConsole:另...
例如,CMS、G1、ZGC等各有优劣,根据应用类型选择合适的GC策略,并进行相应的参数配置,能有效减少停顿时间,提高系统稳定性。 5. **Netty调优**:Netty是一款高性能的异步网络通信框架,它的性能优化主要涉及缓冲...
5. CMS收集器设置:对于响应时间敏感的应用,可以使用CMS收集器,通过-XX:+UseConcMarkSweepGC和-XX:+UseParNewGC启用,并调整相关参数如-XX:CMSInitiatingOccupancyFraction来控制触发CMS的时间点。 6. G1收集器:...
不同的垃圾收集器如Serial、Parallel、CMS、G1、ZGC等有各自的优缺点,根据应用需求选择合适的组合至关重要。内存分配策略,如对象分配在新生代还是老年代,也会影响垃圾收集的效率。通过调整这些策略,可以显著提高...
10. **动态调优**:随着应用运行,可以根据实际情况动态调整JVM参数,如使用G1垃圾收集器的动态压缩目标暂停时间(-XX:TargetPauseInterval)。 本套课件和源码提供了实践操作的机会,让开发者在理论学习的同时,能...
这个压缩包文件"JVM优化3(Tomcat参数调优,JVM参数调优,jvm字节码,代码优化).zip"显然包含了关于如何优化Java应用程序运行效率的四个主要方面:Tomcat服务器的参数调整、JVM参数调优、JVM字节码理解和优化以及代码...
3. **垃圾收集器选择**:JVM提供了多种垃圾收集器,如Serial、Parallel、CMS和G1。根据应用特点选择合适的收集器,例如,对于低延迟要求的应用,可以选择G1收集器。 4. **并发模式**:`-XX:+UseConcMarkSweepGC`和`...
例如,吞吐量优先的场景下可以选择并行垃圾回收器(Parallel GC),而响应时间优先的情况下则更适合使用并发标记清扫垃圾回收器(CMS)或G1垃圾回收器。 3. **监控和分析**:使用JVisualVM、Visual GC等工具监控...
4. **性能优化**:学习如何调整CMS参数以达到最佳的性能表现,比如CMSInitiatingOccupancyFraction参数对GC启动的影响。 5. **内存泄漏检测**:通过分析源码,可以学习如何识别和避免由于垃圾收集不彻底导致的内存...
3. **垃圾收集器(Garbage Collector, GC)**:包括各种GC算法,如Serial、Parallel、CMS(Concurrent Mark Sweep)和G1(Garbage-First),它们的工作原理、优缺点和适用场景。 4. **内存分配策略**:如何设置...
例如,选择合适的垃圾收集器(如G1, CMS, ZGC等),调整新生代和老年代的比例,以及启用方法区的大小等,都能显著改善系统性能。 6. **代码优化**:代码质量直接影响程序性能。遵循SOLID原则,使用设计模式,减少...
2. CMS收集器与G1收集器:选择适合场景的垃圾收集策略。 3. Stop-the-world事件:降低其对应用的影响。 4. 内存分配策略:避免内存碎片,提高内存利用率。 四、线程与并发调优 1. 线程池配置:合理设置核心线程数...
- **垃圾收集器选择**:根据应用特性选择合适的垃圾收集器,例如,CMS、G1或ZGC,以降低暂停时间。 - **并发参数**:调整新生代与老年代的比例(`-XX:NewRatio`),以及Eden和Survivor区的大小。 - **预加载**:...