Java虚拟机(五):常用JVM配置参数

时间:2021-12-29 10:32:41

一、VM选项

  - : 标准VM选项,VM规范的选项
  -X: 非标准VM选项,不保证所有VM支持
  -XX: 高级选项,高级特性,但属于不稳定的选项

参见 Java HotSpot VM Options

二、Trace跟踪参数

-XX:+printGC:打印GC的简要信息

-XX:+PrintGCDetails:打印GC的详细信息

-XX:+PrintGCTimeStamps:打印GC发生的时间戳

-Xloggc:log/gc.log:指定GC log的位置,以文件输出。帮助开发人员分析问题

-XX:+PrintHeapAtGC:打印GC前后的详细堆信息

-XX:+TraceClassLoading:监控类的加载

-XX:+PrintClassHistogram:按下Ctrl+Break后,打印类的信息(数量、大小)

三、堆的参数

-Xms:堆最小空间
-Xmx:堆最大空间
-Xmn:新生代大小

-XX:NewRatio=n:设置新生代和年老代的比值。如:为3,表示新生代与年老代比值为1:3,新生代占整个堆的1/4
-XX:SurvivorRatio=n:设置两个Survivor区和eden的比,8表示 两个Survivor :eden=2:8,即一个Survivor占年轻代的1/10

-XX:+HeapDumpOnOutOfMemoryError:OOM时导出堆到文件
-XX:+HeapDumpPath:导出OOM的路径

-XX:OnOutOfMemoryError:在OOM时,执行一个脚本

  • "-XX:OnOutOfMemoryError=D:/tools/jdk1.7_40/bin/printstack.bat %p“
  • 当程序OOM时,在D:/a.txt中将会生成线程的dump,可以在OOM时,发送邮件,甚至是重启程序

四、永久区的参数

-XX:PermSize:设置永久区的初始空间
-XX:MaxPermSize:永久区的最大空间

五、栈的参数

-Xss:栈的大小