`
lanhuidong
  • 浏览: 227591 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

The Java HotSpot VM's GC

    博客分类:
  • Java
阅读更多

GC的主要特点:

一、精确

    1.所有内存中不可访问到的对象会被可靠的回收。

    2. 所有内存对象可被移动,允许内存压缩,从而消除内存碎片,提高内存可用性。

 

二、Generational Copying Collection

    1.与不是代垃圾回收器相比,加快了分配速度和整体回收效率;

    2.减少了用户能感知到的垃圾收集频率和时间。

    基于一个程序中大部分对象(大于95%)的生命周期很短这一事实,可在内存的某个区域放置新创建的对象,由于分配给新对象的空间是连续的,类似于栈的空间,所以分配速度很快,垃圾收集器要做的是更新指针和检查这块区域是否溢出。如果该区域已满,大部分对象已死,对于已死的对象不用做任何清理工作,只要把少数幸存的对象移动到另一个区域即可。

 

三、Parallel Young Generation Collector

    这是Server VM的默认垃圾收集器。

 

四、Mark-Compact Old Object Collector

    虽然代复制垃圾垃圾收集器能够有效的回收大部分对象,但是一些生命周期比较长的对象仍然积累在旧对象内存区。标记紧凑收集器遍历整个活动对象图,移动活动对象已填补已死对象留下的废弃区域,从而使内存更加紧凑。

 

五、Mostly Concurrent Mark-Sweep Collector

    减少旧代区域清理的暂停时间,这是通过在程序线程执行的同时进行大量的跟踪和清理工作实现的。

 

六、Parallel Old Generation Collector

    当前版本的HotSpot VM为旧代引入了并行标记紧凑垃圾收集器,这种垃圾收集器是为增大系统吞吐量而设计的,当开始回收时会暂停程序并同时启动很多线程来清理旧代中的区域。

 

一个垃圾收集器可由以上的几种垃圾收集算法组合而成,对于Young generation和Old generation采取适合该堆栈区域的算法。

分享到:
评论

相关推荐

    hllvm.HotSpot VM Serial GC的一个问题1

    【Java HotSpot VM Serial GC详解】 HotSpot VM的Serial GC是一种单线程的垃圾收集器,主要用于新生代的垃圾回收,特别适用于轻量级和低内存的环境。在这个话题中,我们将深入探讨Serial GC在新生代(Young ...

    Java Performance Companion(Addison,2016)

    Picking up where Charlie Hunt and Binu John’s classic Java Performance left off, this book provides unprecedented detail on two powerful Java platform innovations: the Garbage First (G1) garbage ...

    jvm 参数及gc详解

    Java虚拟机(JVM)是Java...阅读“java hotspot vm options.pdf”、“java se 6 hotspot[tm] virtual machine garbage collection tuning.pdf”和“java工具选项文档.pdf”等资料,将有助于深入学习和实践这些知识。

    【译】Java 14 Hotspot 虚拟机垃圾回收调优指南(csdn)————程序.pdf

    Java HotSpot VM 提供了两种主要的优化目标:最大暂停时间和应用吞吐量。最大暂停时间目标通过 `-XX:MaxGCPauseMillis` 参数设定,目标是限制垃圾收集暂停的最长时间,以保证应用程序的响应性。吞吐量目标则关注整个...

    hotspot-virtual-machine-garbage-collection-tuning-guide.pdf

    《Java平台标准版HotSpot虚拟机垃圾收集调优指南》是针对Java HotSpot虚拟机(Java HotSpot VM)内建的垃圾收集算法的一份详细指南,旨在帮助开发者和系统管理员选择最适合他们应用需求的垃圾收集策略。这份文档适用...

    jvm技术精华-架构师必备

    ### JVM技术精华——架构师必备知识点...通过深入理解HotSpot VM的历史背景和发展过程,以及Java内存结构的基本概念,架构师们能够更好地掌握Java应用程序的性能调优技巧,这对于提高软件系统的稳定性和性能至关重要。

    Hotspot源码

    Hotspot源码是Java开发中的重要参考资料,它揭示了Java虚拟机(JVM)的工作原理。Oracle JDK中的Hotspot JVM是Java程序运行的核心,负责字节码解释、编译优化以及垃圾回收等关键任务。Hotspot源码的分析有助于开发者...

    JVM与Java体系结构.pdf

    4. **JVM的发展历程**:从早期的Classic VM到Exact VM,再到现在的HotSpot VM,JVM不断优化,引入了如JIT编译器和热点代码探测技术,提升了性能。HotSpot VM在JDK 6、8等版本中成为默认选择,因其能够平衡优化响应...

    Java GC on HP-UX Itanium

    【Java GC on HP-UX Itanium】和【JDK on HP-UX 简要介绍及性能调试概要】这两个主题涉及到的是Java在HP-UX操作系统上的运行环境、内存管理和性能优化,特别是针对Itanium架构的Java垃圾收集(GC)机制。以下是详细...

    Java高级面试JVM虚拟机、内存结构、垃圾回收机制

    JVM的种类繁多,包括Sun Classic VM、Exact VM、HotSpot VM、JRockit(由BEA公司开发,后被Oracle收购)、J9(IBM公司的产品)以及阿里巴巴的TaobaoJVM。其中,HotSpot VM是Sun JDK和OpenJDK的标准虚拟机,以其热点...

    java-virtual-machine-neutral

    - **HotSpot VM**:HotSpot是Oracle提供的JVM实现,广泛应用于Java应用中。它具有多种特性,包括即时编译(JIT)和自适应优化技术,可以显著提高程序运行速度。 - **JVM命令行选项**:正确设置JVM命令行选项对于性能...

    java虚拟机知识点整理

    - **Sun公司的Hotspot VM**:它是Java社区广泛使用的虚拟机,擅长动态优化,能够根据程序运行情况热编译字节码为机器码。 - **BEA公司的JRockit VM**:专注于低延迟和高效内存管理,特别适合企业级应用。 - **IBM...

    Java高级面试题及答案真题(2021年Java面试题答案大汇总)

    HotSpot VM把GC分代收集扩展至方法区,即使用Java堆的永久代来实现方法区,这样HotSpot的垃圾收集器就可以像管理Java堆一样管理这部分内存。 8. Java的内存模型(JMM)是JVM试图定义一种统一的内存模型,能将各种...

    java虚拟机各种版本

    JVM还有许多优化技术,如分代垃圾收集、并行/并发GC、压缩引用、逃逸分析等,这些都对提升Java应用的性能起到了关键作用。对于开发者而言,理解JVM的工作原理和调优技术,能帮助他们编写出更高效、更稳定的代码。 ...

    JVM历史发展和内存回收笔记

    2. **HotSpot VM**:1997年,Sun公司收购了HotSpot VM,这是一个具有动态编译能力的JVM,能够根据程序运行情况优化代码,显著提升了性能。HotSpot后来成为了Java SE的标准JVM。 3. **Java 2 Platform, Standard ...

    深入理解Java虚拟机1

    随着技术进步,后来的JVM如HotSpot VM引入了即时编译(JIT)技术,提高了运行效率。 在Java虚拟机中,内存管理是非常关键的部分。Java程序中的内存主要分为堆内存和栈内存。堆内存用于存储对象实例,当分配的内存...

    JDK9GC-cheatsheet.pdf

    在这个版本中,HotSpot JVM提供了多种垃圾回收(GC)算法,每种算法都有其特定的适用场景和参数调整策略。下面将详细讨论JDK9中的主要GC类型、相关参数以及调优策略。 1. **GC类型与启用参数**: - **Serial GC**...

Global site tag (gtag.js) - Google Analytics