本文主要是介绍29、亲身体验Young GC风暴:模拟教程带你走进GC的神秘世界!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
29.1、前文回顾
在今天的文章,我们将通过代码演示来展示年轻代的Young GC是如何发生的。同时,我们还将指导大家如何在JVM参数中配置打印对应的GC日志。接下来,我们将通过分析GC日志,逐步解析JVM的垃圾回收机制是如何运作的。
29.2、不可不知的JVM参数设置技巧
首先,根据我们之前的学习,我们知道,在系统运行过程中创建的对象,通常都是优先分配在新生代中的Eden区域。当然,这是针对于非大对象的情况。
具体来说,新生代中除了Eden区域,还有两块名为Survivor的区域。默认情况下,Eden区域占据新生代的80%,而每块Survivor区域则各占据新生代的10%
比如我们用以下JVM参数来运行代码:
-XX:NewSize=5242880 -XX:MaxNewSize=5242880 -XX:InitialHeapSize=10485760 -XX:MaxHeapSize=10485760 -XX:SurvivorRatio=8 -XX:PretenureSizeThreshold=10485760 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC
上述参数是基于JDK 1.8版本进行设置的,不同版本的JDK可能会有不同的参数名称,但它们的基本含义是相似的。
在这段文本中,“-XX:InitialHeapSize"和”-XX:MaxHeapSize"分别代表初始堆大小和最大堆大小。“-XX:NewSize"和”-XX:MaxNewSize"则分别表示初始新生代大小和最大新生代大
这篇关于29、亲身体验Young GC风暴:模拟教程带你走进GC的神秘世界!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!