
该图代表jvm中的新生代,老年代,持久代; 新生代和老年代主要指堆区(管理对象),持久代主要指方法区(因为方法区里是类信息,静态变量,常量等需要“持久”的信息);我们这里主要看堆区的gc;
新生代:里主要分为Eden Space 和Survivor两块;Eden代表“伊甸园”,新生的对象都会放到这里,Survivor (翻译为幸存,这里我理解为在Eden区gc时,未被回收的对象会放到这个辛存区;)又包括FromSpace和ToSpace两个区域,这两个区域大小是一样的;FromSpace我理解为进行复制算法的来源区,ToSpace理解为要放的地方;
老年代:主要存放经过多次gc还存活的对象,新生代的对象可以设置年龄阀值,超过年龄阀值的对象会转到老年代;老年代采用的是标记压缩算法(相较于标记清除算法不会产生内存碎片);
总结理解:在GC开始的时候,对象只会存在于Eden区和名为“From”的Survivor区,Survivor区“To”是空的。紧接着进行GC,Eden区中所有存活的对象都会被复制到“To”,而在“From”区中,仍存活的对象会根据他们的年龄值来决定去向。年龄达到一定值(年龄阈值,可以通过-XX:MaxTenuringThreshold来设置)的对象会被移动到年老代中,没有达到阈值的对象会被复制到“To”区域。经过这次GC后,Eden区和From区已经被清空。这个时候,“From”和“To”会交换他们的角色,也就是新的“To”就是上次GC前的“From”,新的“From”就是上次GC前的“To”。不管怎样,都会保证名为To的Survivor区域是空的。Minor GC会一直重复这样的过程,直到“To”区被填满,“To”区被填满之后,会将所有对象移动到年老代中。
补充方法区和持久代的关系:方法区物理上存在于堆里,而且是在堆的持久代里面;但在逻辑上,方法区和堆是独立的。
一般说堆的持久代就是说方法区;
参考:https://www.cnblogs.com/nantang/p/5674793.html
转载于:https://my.oschina.net/u/3734816/blog/3063151
分享到:
相关推荐
书中详尽地阐述了JVM的工作原理,以及如何进行有效的性能优化,旨在帮助读者理解并掌握Java内存管理的关键技术。 JVM是Java程序运行的基础,它是Java平台的核心组成部分,负责解释和执行Java字节码。书中可能涵盖了...
《深入理解JVM & G1 GC》一书深入剖析了Java虚拟机(JVM)的工作原理,特别是针对垃圾收集器(GC)中的G1(Garbage-First)算法进行了详尽的探讨。JVM是Java程序运行的基础,它负责解析、编译、执行Java代码,并管理...
在实际应用中,了解和掌握JVM的内存管理和G1 GC的工作机制,结合具体的应用场景进行适当的调优,可以显著提升应用的性能和稳定性。调优是一个持续的过程,需要不断地监控、分析和实验,以找到最佳的配置。
通过对JVM_GC调优的深入探讨,我们可以看出JVM内存管理和垃圾回收机制的复杂性。合理的GC策略和参数调整对于提高Java应用的性能至关重要。理解不同GC算法的特点和适用场景,可以帮助开发者选择最适合特定应用场景的...
总结来说,理解JVM堆的结构和GC的工作机制对于优化Java应用性能至关重要。调整合适的堆大小和内存分配策略可以有效减少垃圾回收的频率和时间,提高系统响应速度。此外,监控GC日志,分析GC行为,以及使用适当的GC...
理解JVM内存模型和GC机制是Java开发人员的必备技能,通过合理配置JVM参数和选择合适的垃圾收集器,可以有效地提升应用程序的性能和稳定性。在实际项目中,结合监控工具(如VisualVM、JConsole等)进行调优,是解决...
本文将根据提供的信息,深入阐述JVM的工作原理,GC的机制以及如何进行JVM的性能调优。 首先,JVM是Java语言的核心组成部分,它为Java程序提供了运行时环境。JVM的主要任务是执行字节码,确保跨平台的兼容性。JVM的...
了解并掌握JVM的GC机制,有助于我们更好地优化Java应用程序,减少垃圾收集带来的性能影响,确保系统的稳定性和高效运行。通过深入研究JVM源码,我们可以更深入地理解这些概念,并能有效地解决实际遇到的性能问题。
通过上述分析可知,合理配置JVM的堆空间大小以及正确理解GC的工作机制对于提升Java应用程序的性能至关重要。此外,了解不同代(如新生代、旧生代和永久代)的作用及其对GC的影响,有助于更好地进行性能调优。例如,...
总结,理解并掌握JVM参数和GC机制是Java开发中的重要技能。通过合理配置JVM参数,我们可以有效控制内存使用,优化程序性能,并减少垃圾收集带来的负面影响。同时,根据应用特性选择合适的垃圾收集策略,能进一步提高...
Java 虚拟机(JVM)是Java编程语言的核心组成部分,它为Java应用程序提供了一个跨平台的运行环境。JVM的设计目标是实现Java代码的“一次...理解JVM的工作原理对于优化Java应用性能、排查问题和开发Java扩展至关重要。
总结,理解和掌握JVM的工作原理以及GC机制,对于优化Java应用性能至关重要。通过细致的调优,可以有效减少垃圾收集的开销,提升系统的稳定性和响应速度。同时,持续监控和分析JVM运行状态,能帮助我们及时发现并解决...
如果你对jvm没有基本的了解,那么你可以先了解jvm之后再参阅本人会更便于理解 建议参考文章:《一张图看懂JVM》 垃圾回收机制(GC) 首先要知道一些概念 年轻代、老年代、Eden区、Survivor区 年轻代:由Eden区、...
Java虚拟机(JVM)是Java程序运行的基础,它的垃圾收集器(GC)是自动管理内存的核心机制。在Java应用程序中,尤其是对于大型系统或高并发环境,进行JVM GC调优是提升性能、减少系统停顿时间的关键步骤。"用于测试...
理解JVM的体系结构对于优化Java应用的性能至关重要,尤其是垃圾收集(Garbage Collection, GC)的调优。在46页的"PPT"中,我们可以期待涵盖以下几个关键领域: 1. **JVM概述** - JVM的作用:解释字节码、执行Java...
总的来说,掌握JVM-GC全面知识不仅有助于优化Java应用性能,也能帮助开发者深入理解Java程序的运行机制。了解这些内容,可以有效避免内存溢出、提高应用响应速度,并能更好地应对多线程环境下的数据同步问题。对于...
GC的工作机制包括新生代、老年代、永久代(在较新版本的JVM中已被元空间取代)等区域的划分,以及各种GC算法如复制算法、标记-清除算法、标记-整理算法和分代收集策略等。理解这些机制对于优化JVM性能至关重要。 ...
Java垃圾回收(GC)机制是Java编程语言中的一个重要特性,它自动管理程序的内存空间,负责识别并清除不再使用的对象,以防止内存泄漏。本文将深入探讨Java GC的工作原理、类型、过程以及优化策略。 一、Java垃圾...
GC机制基于几个关键概念工作,比如可达性(reachability)分析,即通过一系列的“根”对象(如虚拟机栈、本地方法栈和方法区中引用的对象)来判断对象是否被引用,未被引用的对象即为“不可达”对象,将被清理。...
我们通过深入探讨以下几个关键点来理解JVM垃圾回收机制的工作原理: 1. 如何确定某个对象是“垃圾”? JVM垃圾回收机制通过两种主要算法来确定对象是否成为垃圾,即“可达性分析算法”和“引用计数法”。 - 可达性...