串行收集器:
启动方式:-XX:UseSerialGC
使用该模式后eden使用复制算法,old代使用标记-压缩
ParNeW并行收集器:
启动方式: -XX:+UseParNewGC
使用该模式后,eden代使用并行回收,old代使用串行回收
同时可以使用-XX:ParallelGCThread限制并行回收线程数量
Parallel收集器:
1.ParNew的升级版本
2.该收集器下 eden代使用复制算法 old代使用标记-压缩算法
3.-XX:+UseParallelGC eden使用Parallel并行 old代使用串行收集
4.-XX:+UseParallelOldGC eden+old都使用parallel并行收集
并行收集器参数:
-XX:MaxGCPauseMills 最大停顿时间,GC过程中尽量不超过改时间(不保证一定)
-XX:GCTimeRatio 程序运行时间和GC时间比例 默认99
CMS收集器:
1.Concurrent Mark Sweep 并发标记-清除算法
2.是和应用程序并发执行的一种收集器
3.使用在old代的回收,eden仍代使用ParNew
4.启用方式:-XX:+UseConcMarkSweepGC
5.执行过程A初始标记->B并发标记->C重新标记->D并发清理.在A,C阶段依然可能出现STW
6.-XX:CMSInitiatingOccupancyFraction 设置触法GC的阈值
-XX:+ UseCMSCompactAtFullCollection Full GC后,进行一次整理
-XX:+CMSFullGCsBeforeCompaction 设置进行几次FullGC后,进行碎片整理
-XX:ParallelCMSThreads 设定CMS的线程数量
7.CMS回收启动失败,会使用串行收集器进行GC
GC参数整理:
-XX:+UseSerialGC:在新生代和老年代使用串行收集器
-XX:SurvivorRatio:设置eden区大小和survivior区大小的比例
-XX:NewRatio:新生代和老年代的比
-XX:+UseParNewGC:在新生代使用并行收集器
-XX:+UseParallelGC :新生代使用并行回收收集器
-XX:+UseParallelOldGC:老年代使用并行回收收集器
-XX:ParallelGCThreads:设置用于垃圾回收的线程数
-XX:+UseConcMarkSweepGC:新生代使用并行收集器,老年代使用CMS+串行收集器
-XX:ParallelCMSThreads:设定CMS的线程数量
-XX:CMSInitiatingOccupancyFraction:设置CMS收集器在老年代空间被使用多少后触发
-XX:+UseCMSCompactAtFullCollection:设置CMS收集器在完成垃圾收集后是否要进行一次内 存碎片的整理
-XX:CMSFullGCsBeforeCompaction:设定进行多少次CMS垃圾回收后,进行一次内存压缩
-XX:+CMSClassUnloadingEnabled:允许对类元数据进行回收
-XX:CMSInitiatingPermOccupancyFraction当永久区占用率达到这一百分比时,启动CMS回收
-XX:UseCMSInitiatingOccupancyOnly:表示只在到达阀值的时候,才进行CMS回收
分享到:
相关推荐
JVM GC垃圾回收.pdf
JvmGC收集器 在 Java 虚拟机中,GC(Garbage Collection)收集器是 JVM 的一个重要组件,它负责回收 Java 应用程序中的垃圾对象,从而维持应用程序的性能和可靠性。JvmGC 收集器是 JVM 中的三个主要 GC 收集器之一...
Java虚拟机(JVM)是Java程序运行的基础,它的核心组成部分之一就是垃圾回收器(Garbage Collector, GC),以及内存分配策略。理解这些概念对于优化Java应用性能至关重要。本篇文章将深入探讨JVM的垃圾回收机制以及...
Java虚拟机(JVM)的垃圾收集...理解JVM的GC机制对优化应用性能至关重要,不同的垃圾回收器和参数调整可以适应不同应用场景的需求。熟练掌握这些知识点能帮助开发者更好地理解和解决问题,避免不必要的性能瓶颈。
Java虚拟机(JVM)的垃圾回收(GC)机制是Java程序高效运行的关键部分,它自动管理内存,释放不再使用的对象以避免内存泄漏。本文主要探讨JVM堆内存的结构和GC的工作原理,以及如何进行性能调优。 JVM堆是Java应用...
本文将深入探讨JVM垃圾回收器的工作原理,并通过实例来帮助开发者理解和应用。 1. 垃圾回收概述 - 内存管理:Java中的内存分为堆内存和栈内存,垃圾回收主要针对堆内存。 - 对象生命周期:创建、使用、不再引用...
4. G1 GC:新一代的垃圾回收器,目标是达到低延迟,通过分区技术来平衡吞吐量和暂停时间。 5. ZGC:最新一代的低延迟GC,目标是在大内存环境下实现极低的暂停时间。 四、垃圾回收的过程 GC主要包括三个阶段:标记、...
6. **Java 7与G1 GC**:2011年,Java 7引入了G1(Garbage First)垃圾回收器,它是一种并行、并发且具有低延迟特性的垃圾回收器,适用于大型应用。 7. **Java 8与元空间**:2014年,Java 8中,永久代被元空间...
强引用的对象不会被垃圾回收器回收,即使内存不足时也不会被回收。软引用是用于描述一些还有用但非必须的对象。在内存不足时,这些对象会被垃圾回收器回收。弱引用与软引用类似,也是用来描述非必须对象的,但它比软...
- **垃圾回收器**:JVM内置的垃圾回收器负责识别并清理这些无用的对象,释放内存资源。 - **内存区域**:JVM内存分为堆(Heap)、栈(Stack)、方法区(Method Area)、本地方法栈(Native Method Stack)等几个...
就回收模式而言,CLR在4.0版本之前的垃圾回收器包括工作站并发GC、工作站非并发GC和服务器GC。工作站并发GC试图在应用程序运行的同时执行垃圾回收,以减少应用程序暂停的时间。然而,对于某些代的回收,应用程序仍会...
JVM(Java Virtual Machine)垃圾回收器是Java编程语言中的一个核心组件,它负责自动管理程序运行时的内存,主要任务是识别并释放不再使用的对象,以避免内存泄漏。理解垃圾回收器的工作原理和特性对于优化Java应用...
JVM(Java Virtual Machine)的垃圾收集器(GC,Garbage Collector)扮演着核心角色,负责自动管理应用程序的内存,防止内存泄漏和性能问题。MAT(Memory Analyzer Tool)是由Eclipse基金会提供的一个强大的分析工具...
在Java中,当对象不再被引用时,它们应该被垃圾回收器回收。GC机制基于几个关键概念工作,比如可达性(reachability)分析,即通过一系列的“根”对象(如虚拟机栈、本地方法栈和方法区中引用的对象)来判断对象是否...
- 分代收集算法:这是现代JVM垃圾回收器普遍采用的一种方法,它结合了上述几种算法。新创建的对象通常放在称为“新生代”的内存区域,经过多次垃圾回收仍然存活的对象则会被移动到“老年代”。新生代采用复制算法,...
《垃圾回收系列(3):CLR与JVM垃圾回收器的比较》 本文主要探讨了.NET框架中的CLR(公共语言运行库)与Java平台中的JVM(Java虚拟机)在垃圾回收机制上的异同。垃圾回收是现代编程环境中管理内存的重要机制,它可以...
优化建议包括合理设置堆内存大小,选择合适的垃圾回收器,调整新生代与老年代的比例,以及监控JVM的运行状态并根据实际情况进行调整等。 总之,熟悉JVM内存划分和GC机制,以及掌握相关监控工具和参数配置,对于避免...
Java虚拟机(JVM)是Java程序运行的基础,它的垃圾收集器(GC)是自动管理内存的核心机制。在Java应用程序中,尤其是对于大型系统或高并发环境,进行JVM GC调优是提升性能、减少系统停顿时间的关键步骤。"用于测试...
**JVM之垃圾回收器** Java虚拟机(JVM)是Java编程语言的核心组成部分,它负责执行字节码并管理程序运行时的内存。在JVM的内存模型中,垃圾回收(Garbage Collection, GC)是一项重要的功能,它自动识别并清理不再...