不同版本的JVM日志差异是比较大的,所以有必要专门探讨一下,首先我们先来看一下JDK 8里的JVM日志是怎么玩的。
常用参数
这里笔者整理了JDK8一部分相关垃圾收集和运行时的常用参数。
JDK 8垃圾收集相关参数
G1PrintHeapRegions、GCLogFileSize、NumberOfGCLogFiles、PrintAdaptiveSizePolicy、PrintGC、PrintGCApplicationConcurrentTime、PrintGCApplicationStoppedTime、PrintGCCause、PrintGCDateStamps、PrintGCDetails、PrintGCID、PrintGCTaskTimeStamps、PrintGCTimeStamps、PrintHeapAtGC、PrintReferenceGC、PrintStringDeduplicationStatistics、PrintTenuringDistribution、UseGCLogFileRotation
JDK 8运行时常用参数
TraceExceptions、TraceClassLoading、TraceClassLoadingPreorder、TraceClassUnloading、VerboseVerification、TraceClassPaths、TraceClassResolution、TraceClassInitialization、TraceLoaderConstraints、TraceClassLoaderData、TraceSafepointCleanupTime、TraceSafepoint、TraceMonitorInflation、TraceBiasedLocking、TraceRedefineClasses
下面我们来做一个实验,从项目里设置几个参数来打印一个垃圾收集日志玩一玩。
首先,我们把项目JDK切换为JDK8。
接着,我们从idea编辑启动参数。
然后把最小堆内存以及最大堆内存都设置成50M
参数设置:
-Xms50m -Xmx50m -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCCause -Xloggc:/Users/weichenglong/Desktop/gclog.log
<