30.1、前文回顾
上一篇文章向大家展示了一个示例性的代码,并提供了实验所需的JVM参数。我们详细讲解了如何在Eclipse中使用特定的JVM参数来运行程序,并且大家也观察到了代码运行中触发的Young GC的日志。然后,我们鼓励大家自行进行思考和分析。
今天,我们将以一步一图的方式,继续深入探讨昨天的内容,仔细分析GC日志。通过图文并茂的解析,我们将向大家展示Young GC的实际执行过程,帮助大家更好地理解其运作机制。
30.2、快速查看你的程序默认JVM参数
在GC日志中,我们可以观察到以下内容:
CommandLine flags: -XX:InitialHeapSize=10485760 -XX:MaxHeapSize=10485760 -XX:MaxNewSize=5242880 .........
这段信息向我们展示了本次运行程序时JVM所采用的参数。其中,大部分参数是我们主动设置的,同时也包含了一些默认设置的参数。这些默认参数通常不会对程序产生太大影响。
很多人可能会问,如果没有手动设置JVM参数,如何查看系统使用的默认JVM参数呢?其实方法非常简单,只需为你的JVM添加一段打印GC日志的参数,就可以在这里观察到系统默认为JVM进程分配了多少内存空间。通常情况下,系统默认分配的内存空间是较小的。
30.3、一次GC的概要说明
接下来,我们来分析GC日志中的一行内容:
0.268: [GC (Allocation Failure) 0.269: