按代的垃圾收集机制, 主要分为三种:
复制算法,空间被分为等大的两块,从根开始访问每一个关联的活跃对象,将空间 A 的活跃对象全部复制到空间 B,然后一次性回收整个空间 A,优点:只访问活跃对象,将所有活动对象复制走之后就清空整个空间,不用去访问死对象,所以遍历空间的成本较小,缺点:需要巨大的复制成本和较多的内存;
标记清除算法,从根开始访问所有活跃对象,标记为活跃对象。然后再遍历一次整个内存区域,把所有没有标记活跃的对象进行回收处理,优点:不需要额外的空间,缺点:较长的 GC 暂停时间,较大的扫描时间开销,产生较多的空间碎片;
标记清除整理算法,综合上两种算法的优点,先标记活跃对象,然后将其合并成较大的内存块。
代的划分:
- 年轻代:新创建的对象分配在此,研究表明,大部分程序所产生的对象都在此消亡,几乎所有的收集器为年轻代使用复制算法,年轻代又被划分为 1 个伊甸园区(Eden)和 2 个存活区(Survivor)用来实施复制算法; 也称Minor Collection,基于大多数对象Die Young的原则
- 年老代(Tenured):从年轻代存活下来的对象被复制到年老代,主要实施标记清除或标记清除整理算法;也称Major Collection, Full GC. 该过程会比较慢因为会遍历所有的Live 对象。
- 持久代(Permanent):装载的类数据和方法存储于此,无可消亡对象。
基于JVM层的性能调优思路大概是:
1. 对程序进行profiling, 主要考虑方法调用过程,花费的时间等
2. dump出heap或者实时监控分析 对象大小,引用关系
3. 启动Java程序时打开 -verbose:gc, 分析GC执行情况,执行前后Heap中对象在图上显示有什么pattern(如果有图形显示的工具的话)
根据分析结果检查线程,死锁,内存泄漏的蛛丝马迹。最后可以考虑对JVM启动参数进行调整,这个会改变GC的算法及内存(heap)分配情况
单处理器时基本是基于Generation的Copy算法或者Mark-Sweep-Compact算法;多处理器时考虑并行GC因此可以指定更多的GC策略,一个处理器做GC,另一个继续运行Applicaiton。这样不用象单处理器一样GC时Applicaiton Pause住。
- 大小: 23.6 KB
- 大小: 21.6 KB
分享到:
相关推荐
【HotSpot GC官网文档截图 - 20200917】是一个珍贵的资源集合,包含了一系列关于Java HotSpot虚拟机(JVM)垃圾收集器(GC)的官方文档截图。这些截图详细介绍了GC的发展历程、不同版本的特性、选择GC的策略以及调优...
【Java HotSpot VM Serial GC详解】 HotSpot VM的Serial GC是一种单线程的垃圾收集器,主要用于新生代的垃圾回收,特别适用于轻量级和低内存的环境。在这个话题中,我们将深入探讨Serial GC在新生代(Young ...
### Sun Hotspot V1.6.0 JVM GC详解 #### 一、JVM结构与GC基础知识 ##### 1.1 JVM内存结构概述 Java虚拟机(JVM)内存主要分为以下几个部分: - **程序计数器(PC Register)**:记录当前线程所执行的字节码指令...
Hotspot的GC策略包括Serial、Parallel、Concurrent Mark Sweep (CMS) 和G1。JDK8中,CMS是默认的并行旧代收集器,而G1则是新生代和老年代都采用并发收集的新生代选择。理解这些GC的工作原理和调优参数,对于解决...
3. **垃圾回收(GC)**:Hotspot虚拟机实现了多种垃圾回收算法,如串行GC、并行GC、CMS和G1等。理解GC的工作原理、触发条件以及如何调整GC参数,能帮助解决内存管理和性能问题。 4. **内存模型**:了解Java内存模型...
3. **垃圾收集器(GC)**:Hotspot提供了多种GC策略,如Serial、Parallel、CMS(Concurrent Mark Sweep)和G1(Garbage-First)。GC源码主要位于`gc目录`下,每个策略都有自己的子目录。 4. **内存管理**:Hotspot...
4. **垃圾收集器(Garbage Collector, GC)**:Hotspot提供了多种GC策略,如Serial、Parallel、Concurrent Mark Sweep (CMS) 和G1。这些GC策略各有优缺点,适用于不同的应用场景。 5. **内存管理**:包括堆分配、...
4. **垃圾收集器类型**:HotSpot提供了多种GC策略,如Serial GC、Parallel GC、Parallel Old GC、CMS(Concurrent Mark Sweep)、G1(Garbage-First)和ZGC(Zing Concurrent Low Latency Collector)。每种收集器有...
### HotSpot实战知识点详解 #### 一、HotSpot虚拟机简介 HotSpot 是一款高性能的 Java 虚拟机 (JVM),由 Sun Microsystems 开发并随后被 Oracle 公司收购。HotSpot 虚拟机是当前最流行的 JVM 实现之一,广泛应用于...
作者可能会详细介绍HotSpot的内存模型,包括堆内存的管理,如新生代、老年代、永久代(在较新版本中已被元空间替换)等区域的划分,以及垃圾收集器的工作机制,如Serial、Parallel、CMS(Concurrent Mark Sweep)和...
2. **垃圾收集器(Garbage Collectors)**:HotSpot支持多种GC策略,如Parallel GC、Concurrent Mark Sweep (CMS) 和G1。JDK10的G1 Full GC并行化是HotSpot的一个重要改进。 3. **内存模型(Memory Model)**:...
4. **OpenJDK HotSpot中的GC**: - 平行GC(ParallelGC):适合于吞吐量最大化的场景。 - CMS GC(Concurrent Mark-Sweep Garbage Collector):适用于低延迟要求的应用。 - G1 GC(Garbage First):综合考虑吞吐量和...
5. **垃圾收集器**:Hotspot的垃圾收集器源代码展示了各种GC算法的实现,如CMS的并发标记清除过程,G1的 Region 分区和并行回收,以及ZGC的低暂停时间设计。 三、源代码学习的价值 1. **性能优化**:通过深入源...
HotSpot虚拟机提供了多种GC算法,如串行GC、并行GC、并发标记清除(CMS)和G1垃圾收集器。每种GC策略都有其适用场景和优缺点。 3. **新生代与老年代**:HotSpot虚拟机将堆内存划分为新生代(Young Generation)和老...
Changes in Java SE 8u251 b32 Bug Fixes BugId Category Subcategory Description 8240694 javafx media ...8176100 hotspot gc [REDO][REDO] G1 Needs pre barrier on dereference of weak JNI handles
Java虚拟机(JVM)是Java...阅读“java hotspot vm options.pdf”、“java se 6 hotspot[tm] virtual machine garbage collection tuning.pdf”和“java工具选项文档.pdf”等资料,将有助于深入学习和实践这些知识。
《Java平台标准版HotSpot虚拟机垃圾收集调优指南》是针对Java HotSpot虚拟机(Java HotSpot VM)内建的垃圾收集算法的一份详细指南,旨在帮助开发者和系统管理员选择最适合他们应用需求的垃圾收集策略。这份文档适用...
这通常发生在并发环境下,之前的线程因为阻塞或GC等原因暂时释放了锁。此时,系统会重新记录锁的所有者,并将锁状态变为无偏见的轻量级锁。 4. **性能优势** 偏见锁的主要优势在于减少了锁的获取和释放开销,尤其...
在这个版本中,HotSpot JVM提供了多种垃圾回收(GC)算法,每种算法都有其特定的适用场景和参数调整策略。下面将详细讨论JDK9中的主要GC类型、相关参数以及调优策略。 1. **GC类型与启用参数**: - **Serial GC**...