1)JVM内存分配有以下参数:
一般情况下,-Xms和-Xmx设置相同的大小,-XX:MetaspaceSize和-XX:MaxMetaspaceSize设置相同的大小。-Xms相当于-XX:InitialHeapSize,-Xmx相当于-XX:MaxHeapSize;-Xmn相当于-XX:MaxNewSize;
2)在IDEA中可以设置JVM参数,如下:
3)从命令行运行时,可以设置它们格式如下:
1)设置GC参数:
启动时可以添加以下参数来查看GC日志:
例如我接下来JVM添加了IDEA启动参数:
启动程序后,打印如下日志:
从CommandLineflags第三行可以获取以下信息:
2)查看默认参数:
如果想查看默认的JVM选项,可以在JVM中添加打印GC日志的选项,就可以看到默认的选项。GC日志中的JVM参数。
您还可以在启动选项中添加-XX:+PrintFlagsFinal参数,该参数会打印所有系统参数,您可以看到您配置的或默认的系统参数:
3)GC日志:
以下日志是每次垃圾回收过程中生成的日志。每条日志行都描述该GC的执行情况。例如第四行GC。log:
详细信息如下:
2020-09-25T13:00:41.631+0800:发生垃圾回收的时间点。
4.013:系统运行后多久才出现GC,单位为秒。这是系统运行4.013秒后发生的一次GC。
GC(AllocationFailure):描述运行GC的原因。这里我们讨论的是对象分配失败导致的GC。
PSYoungGen:指使用ParallelScavenge垃圾收集器运行年轻代垃圾收集。
419840K->20541K:GC是为年轻一代设计的。在GC之前,年轻一代使用了419840K。GC后,保留了20541K对象。
(472064K):年轻代可用空间为472064K,即461M。为什么是461M?由于新生代的大小为512MB,Eden区占用409.6MB,两个Survivor区各占用51.2MB,所以年轻代的可用空间等于Eden+1Survivor的大小,也就是460.8MB,大约是461M。
419840K->20573K:GC前整个内存堆使用了419840K,GC后内存堆使用了20573K。
(996352K):整个堆的大小为996352K,即973M。实际上是年轻代461M+老年代512M
0.0118345sec:本次GC花费的时间。
time:user=0.00sys=0.00,real=0.01secs:本次GC花费的时间。
4)退出JVM时的GC情况:
程序退出后,有些将打印日志(第12行)。在后续的日志中,这部分显示了当前堆内存的使用情况:
详细信息如下:
上一篇:mac查看内存使用情况命令
下一篇:查看jvm内存使用情况的命令