主要是记录一些比较常用的JVM参数,总会有用到的时候。
-XX:+PrintGC
打开GC的开关,如果系统发生GC,就会打印GC日志
-XX:PrintGCDetails
打印gc的详细信息
-verbose:gc
输出gc信息
-XX:PrintGCTimeStamps
打印GC,及GC发生的时间
-Xloggc:/gc.log
将gc的信息打印在当前应用的根路径的gc.log文件中
-XX:+PrintHeapAtGC
每次GC后打印出来堆信息
-XX:+TraceClassLoading
打印类的加载信息
-XX:TraceClassUnloading
打印类的卸载信息
-Xms20M
设置堆的最小容量为20m
-Xmx20M
设置堆的最大容量为20m, 项目当中将最大容量和最小容量设置一样避免堆自动扩展
-Xmn20M
设置年轻代的大小为20M
-XX:NewRatio=4
表示(年轻代:老年代=1:4),年轻代占整个堆的1/5
-XX:SurvivorRatio=8
表示(Survivor区:年轻代=2:8),整个survivor区占年轻代的20%
-Xss128k
设置虚拟机栈的大小为128k
-Xoss128k
设置本地方法栈的大小为128k.
-XX:PermSize=10M
设置JVM永久带的容量
-XX:MaxPermSize=20M
设置JVM永久带最大容量
-XX:+HeapDumpOnOutOfMemoryError
虚拟机可以在内存出现异常时dump出当前堆内存转储快照
-XX:PretenureSizeThreshold=3145728
当对象大小超过设定值时3M(3*1024*1024),对象会直接分配到老年代中,该参数只对Serial和ParNew两款收集器有效
-XX:MaxTenuringThreshold=1
当对象年龄大于1时,转储到老年代中,默认是15
-XX:+UseSpining
开启自旋
-XX:PreBlockSpin
设置自旋锁的自旋次数,前提是开启自旋的情况下
-XX:HeapDumpPath=D:\a.dump
发生内存溢出将信息dump到执行文件中