-Xmx :最大堆内存
-Xms :初始堆内存
-Xss :指定线程最大栈空间
方法区(理解为永久区perm,在jdk1.6和1.7中存在,在1.8中剔除):
-XX:PermSize:初始化方法区。
-XX:MaxPermSize:最大方法区:默认情况为64M
-XX:+PrintGC 打印gc日志
-XX:+PrintGCDetails 打印详细的gc日志
-XX:+PrintHeapAtGC 在每次GC前后分别打印堆的信息。
-XX:+PrintGCTimeStamps 该参数会在每个GC发生时,额外的输出GC发生的时间,该输出时间为虚拟机启动后的时间偏移量。
-XX:+PrintGCApplicationConcurrentTime 打印应用程序的执行时间
-XX:+PrintGCApplicationStoppedTime 打印应用程序由于GC而产生的停顿时间。
-XX:+PrintReferenceGC 跟踪系统中软引用、弱引用、虚引用和Finallize队列。
-Xloggc:log/gc.log 在当前目录下的log文件夹下的log文件夹下的gc.log文件中记录所有的GC日志。
类加载/卸载的跟踪
-verbose:class 跟踪类的加载和卸载
-XX:+TranceClassLoading 跟踪类的加载
-XX:+TranceClassUnloading 跟踪类的卸载
Java虚拟机还允许研发人员在运行时打印、查看系统中类的分布情况。只要在系统中启动时加上-XX:+PrintClassHistogram参数,然后在Java的控制台中按下Ctrl+Break组合键,控制台上就会显示当前的类信息柱状图。
系统参数查看:
-XX:+PrintVMOptions 在程序运行时,打印虚拟机接收到的命令行显示参数。
-XX:+PrintCommandLineFlags 可以打印传递给虚拟机的显示和隐示参数。
-XX:+PrintFlagsFinal 打印所有的系统参数的值(大约有500多个)
新生代配置:
-Xmn 用于设置新生代的大小。新生代大小一般设置为整个堆空间的1/3到1/4之间。(-Xmn1m)
-XX:SurvivorRatio=eden/from=eden/to 设置新生代中eden空间和from/to空间的比例关系。
(-XX:SurvivorRatio=2 新生代内存有10m,那么eden区的内存即为5m)
-XX:NewRatio=老年代/新生代 设置新生代和老年代的比例(与-Xmn区别是一个是设置新生代绝对大小,一个是根据比例设置)
堆溢出处理:
-XX:+HeapDumpOnOutOfMemoryError 在内存溢出时到处整个堆信息。
-XX:+HeapDumpPath:d:/a.dmp 和-XX:+HeapDumpOnOutOfMemoryError配合使用,导出堆的存放路径。