-Xmx 最大可用堆空间
-Xms 最小可用堆空间 在实际工作中一般设置-Xmx与-Xms相同。这样的好处是可以减少程序运行时进行的垃圾回收次数,从而提高程序的性能。
-Xmn 设置新生代的大小。设置一个较大的新生代会减小老年代的大小,这个参数对系统性能以及GC行为有很大的影响。新生代的大小一般设置为整个堆空间的1/3到1/4左右。
-XX:SurvivorRatio 用来设置新生代中eden空间和from/to空间的比例关系,它的含义如下-XX:SurvivorRatio=eden/from=eden/to
-Xss 线程的最大栈空间 由于每次函数调用都会生成对应的栈帧,从而占用一定的栈空间,因此如果栈空间不足,那么函数调用自然无法继续进行下去。当请求的栈深度大于最大可用栈深度时,系统就会抛出 StackOverflowError 栈溢出错误。
-XX:+HeapDumpOnOutOfMemoryError 在内存溢出时导出整个堆信息。
-XX:HeapDumpPath 可以指定导出堆信息的存放路径。-XX:HeapDumpPath=d:/a.dump
-XX:OnOutOfMemoryError 在虚拟机OOM时执行一个脚本文件,该文件可以用于奔溃程序的自救,报警或者通知。也可以帮助开发人员获得更多的系统信息,如完整的线程转存(即Thread Dump或者Core Dump )文件。"-XX:OnOutOfMemoryError=d:/a.bat %p"
-XX:MaxDirectMemorySize 最大可用直接内存,如不设置,默认值为最大堆空间,即-Xmx。当直接内存使用量达到最大值时,就会触发垃圾回收,如果垃圾回收不能有效释放足够空间,直接内存溢出依然会引起系统的OOM。
-XX:+PrintGC 输出GC日志信息
-XX:+PrintGCDetails 输出GC日志详细信息
-server Server模式
-XX:+DoEscapeAnalysis 启用逃逸分析
-XX:+EliminateAllocations 开启标题替换(默认开启)
-XX:MaxPermSize 方法区最大空间 默认为64MB
-XX:PermSize 方法区初始空间大小
JDK1.8 方法区移除
-XX:MaxMetaspaceSize 元数据区空间大小
-XX:MaxMetaspaceSize 元数据区初始大小
在JDK1.8中,方法区已经被彻底移除。取而代之的是元数据区,其大小可以使用参数-XX:MaxMetaspaceSize指定(一个大的元数据区可以使系统支持更多的类),这是一块堆外的直接内存。与永久区不同,如果不指定大小,默认情况下,虚拟机会耗尽所有的可用系统内存。
-XX:+PrintHeapAtGC 它会在每次GC前后分别打印堆的信息,可以很好的观察GC对堆空间的影响。
-XX:+PrintGCTimeStamps 在每次GC发生时,额外输出GC发生的时间,该输出时间为虚拟机启动后的时间偏移量。
-XX:+PrintGCApplicationConcurrentTime 打印应用程序的执行时间
-XX:+PringGApplicationsStoppedTime 打印应用程序由于GC而产生的停顿时间
-Xloggc 默认情况下,GC日志会在控制台中输出,不便于后续分析和定位问题。为此虚拟机允许将GC日志以文件的形式输出 -Xloggc:log.gc.log。
-verbose:class 跟踪类的加载和卸载。
-XX:+TraceClassLoading 跟踪类的加载
-XX:+TraceClassUnloading 跟踪类的卸载。
-XX:+PringClassHistogram 打印,查看系统中类的分布情况,在Java的控制台中按下Ctrl+Break组合键,控制台上就会显示当前的类信息柱状图。
-XX:+PrintVMOptions 可以在程序运行时,打印虚拟机接受到的命令行显式参数,。
-XX:+PrintCommandLineFlags 可以打印传递给虚拟机的显式和隐式参数,隐式参数未必是通过命令行直接给出的,它可能是由虚拟机启动时自行设置的。
-XX:+PrintFlagsFinal 它会打印所有的系统参数的值。
-XX:+UseSerialGC 新生代,老年代都使用串行回收器
-XX:+UseParNewGC 新生代使用ParNew回收器,老年代使用串行回收器
-XX:+UseParallelGC 新生代使用ParallelGC回收器,老年代使用串行回收器
-XX:+UseConcMarkSweepGC 新生代使用ParNew回收器,老年代使用CMS
-XX:+UseParallelOldGC 新生代使用Parallel回收器,老年代使用ParallelOldGC回收器
-XX:+UseG1GC 标记打开G1收集器开关
-XX:-CMSPrecleaningEnabled 关闭CMS预清理操作
-XX:+DisableExplicitGC 禁用显式使用System.gc()
-XX:+ExplicitGCInvokesConcurrent 默认情况下,System.gc()使用传统的Full GC方式回收整个堆,而会忽略相关垃圾收集器的参数,如:-XX:+UseG1GC ,-XX:+UseConcMarkSweepGC 。而-XX:+ExplicitGCInvokesConcurrent 会改变System.gc()的这一默认行为。