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

HotSpot VM 内存管理

    博客分类:
  • Java
阅读更多

1.HotSpot VM的内存有三个generation组成:young generation,old generation,permanent generation.

young generation:大多数对象被分配到这块区域;

old generation:young generation中垃圾收集之后存活下来的对象,有些大的对象也直接分配到old generation。

permanent generation:类、方法等的描述信息。

 

2.young generation

young generation区域由Eden区域和两个survivor小区域组成。大多数对象被分配到Eden区域,young generationla垃圾收集之后幸存对象放置到survivor区域,这样做是为了确定对象足够“old”之后在移动到old generation区域。在任何时候,一个survivor区域保存幸存对象,另一个survivor区域保持空的直到下次垃圾收集。

 

3.Serial Collector

使用这种垃圾收集器时:young generation和old generation都串行回收,使用单个cpu,在垃圾收集时,应用程序暂停运行。

适合客户端风格并且没有低暂停要求的程序。

 

4.Parallel Collector(Throughtput Collector)(Server上的默认垃圾收集器)

在young generation使用Serial Collector的young generation垃圾收集算法的多线程版本,old generation的垃圾收集算法和Serial Collector相同。

适合多CPU,没有暂停时间约束的程序。

 

5.Parallel Compacting Collector

它的young generation上的垃圾收集算法和Parallel Collector的young generation相同。

old generation收集分三个阶段:第一阶段,内存区域被分为固定大小的几个区域,所有应用程序直接可到达的对象被几个线程并行的标记。压缩前面标记的对象。第二阶段,和从左边开始查找值得回收的标记点。第三阶段,压缩第二阶段标记点右边的区域。

 

6.Concurrent Mark-Sweep(CMS) Collector

young generation和Parallel Collector一样。

old generation:第一阶段,暂停程序,标记应用程序直接可到达的对象。第二阶段,应用程序并行,标记第一阶段对象可到达的对象。第三阶段,暂停程序,重新标记第二阶段修改过的对象。最后清理垃圾。

分享到:
评论

相关推荐

    Troubleshooting Guide for Java SE 6 with HotSpot VM

    2. **性能调优技巧**:提供关于如何优化Java SE 6应用程序性能的建议,包括内存管理、垃圾回收等方面。 3. **错误代码解读**:解释各种错误代码的意义以及它们通常指向的问题根源。 4. **工具介绍**:介绍用于诊断和...

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

    HotSpot VM的Serial GC是一种单线程的垃圾收集器,主要用于新生代的垃圾回收,特别适用于轻量级和低内存的环境。在这个话题中,我们将深入探讨Serial GC在新生代(Young Generation)中如何进行Minor GC,以及涉及到...

    借HSDB来探索HotSpot VM的运行时数据1

    通过这种方式,我们能够观察到变量在不同内存区域的生命周期和状态,从而深化对JVM内存管理的理解。这种方法对于学习JVM的工作原理和优化Java应用程序都非常有帮助,因为它揭示了程序在运行时的实时内存布局。 总之...

    hotspot.tar.gz

    总结来说,Hotspot JVM作为Java平台的核心,其源码揭示了Java程序执行的底层细节,包括垃圾收集、内存管理、线程调度、编译优化等多个重要方面。通过深入学习Hotspot源码,开发者可以更好地理解和优化Java应用程序,...

    hllvm.借HSDB来探索HotSpot VM的运行时数据1

    在HotSpot VM中,静态变量实际存储在非堆内存的一个特殊区域,这部分内存并不受垃圾收集器管理。 2. **实例变量t2**:实例变量属于对象的一部分,当创建一个对象Test的实例时,t2会被分配到Java堆中。Java堆是JVM...

    The Java HotSpot VM.pdf

    5. **编程语言实现**:文档对编程语言实现进行了解释,涉及语言实现的几个关键部分,包括编译器、标准库、调试器和内存管理。这些是构成现代编程语言运行时环境的基础组件,对于确保应用性能和稳定性至关重要。 ...

    hotspot源码

    首先,HotSpot虚拟机的核心功能包括类加载、内存管理、执行引擎和垃圾收集器等。在源码层面,这些功能模块的实现都是经过精心设计的,旨在提供高效的运行环境。 1. 类加载:HotSpot采用双亲委派模型进行类加载,...

    jvm技术精华-架构师必备

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

    HotSpot Runtime概述

    **引用**机制涉及软引用、弱引用、虚引用等,用于内存管理和对象生命周期的控制。 **进一步阅读**资源可以帮助开发者深入理解这些主题,以便更好地优化和调试Java应用。 总之,HotSpot运行时系统是一个复杂而精细...

    Hotspot源码

    Hotspot源码的分析有助于开发者深入理解Java性能优化、内存管理以及垃圾收集机制。 首先,让我们探讨一下JVM。Java虚拟机是Java平台的核心组成部分,它为Java程序提供了一个跨平台的运行环境。Hotspot JVM是Oracle ...

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

    面试中,深入理解JVM的工作原理,特别是内存管理和垃圾回收机制,对于Java工程师来说至关重要。能够分析和调优JVM参数,解决内存溢出、性能瓶颈等问题,是高级工程师必备的能力。此外,了解不同JVM实现之间的差异和...

    JavaVM运作原理

    3. **自动内存管理器(Automatic Memory Manager)**:实现垃圾回收机制。 4. **执行引擎(Execution Engine)**:解释或编译字节码为机器代码。 5. **地址数据和指令(Address Data & Instruction)**:包括程序计数器...

    Java Program in Action

    #### 八、HotSpot VM的内存管理 HotSpot VM的内存管理主要包括: - **堆区**:存放对象实例和数组。 - **方法区**:存放类信息、常量、静态变量、即时编译器编译后的代码等数据。 - **栈区**:存放局部变量、操作数...

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

    总之,《HotSpot虚拟机垃圾收集调优指南》提供了一个全面的框架,帮助开发者理解Java HotSpot虚拟机的内存管理机制,以及如何调整和优化这些机制以满足不同应用的需求。通过深入学习和实践,可以更好地掌握JVM性能...

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

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

Global site tag (gtag.js) - Google Analytics