内存设置
| 参数 | 含义 | 说明 |
|---|---|---|
| -Xms1024m | 初始堆大小 | |
| -Xmx1024m | 最大堆大小 | |
| -Xmn500m | 年轻代大小 | |
| -Xss1024k | 单个线程栈 | |
| -XX:PermSize=200m | 永久代 | before java8 |
| -XX:MaxPermSize=300m | 永久代 | before java8 |
| -XX:MetaspaceSize | 元数据 | after 8 |
| -XX:MaxMetaspaceSize | 元数据 | after 8 |
| -XX:NewRatio=4 | Olden区与Young区比例 | 4:1 |
| -XX:SurvivorRatio=8 | Eden与Survivor区比例 | 8:1:1 |
| -XX:LargePageSizeInBytes | 内存页大小 | JVM优化之调整大内存分页 |
GC设置
| 参数 | 含义 | 说明 |
|---|---|---|
| -XX:+DisableExplicitGC | 关闭System.gc() | 慎用 |
| -XX:MaxTenuringThreshold | 晋升年龄 | |
| -XX:PretenureSizeThreshold=1024k | Olden区直接分配对象临界值 | |
| -Xnoclassgc | 禁用类回收 | |
| -XX:SoftRefLRUPolicyMSPerMB=1s | 软引用存活秒数/每空闲MB | |
| -XX:+UseParNewGC | 并行回收YOUNG区,CMS默认搭档 | |
| -XX:+UseConcMarkSweepGC | CMS回收老年代 | |
| -XX:CMSFullGCsBeforeCompaction=3 | 3次FullGC后,整理老年代 | |
| -XX:+CMSParallelRemarkEnabled | 并行标记,降低停顿 | |
| -XX:CMSInitiatingOccupancyFraction=85 | Olden区85%后开始GC | |
| -XX:+CMSClassUnloadingEnabled | 开启类卸载 |
调试参数
| 参数 | 含义 | 说明 |
|---|---|---|
| -XX:+PrintGCDetails | GC日志 | |
| -XX:+PrintGCApplicationStoppedTime | GC停顿时间 | |
| -verbose:gc/class/jni | 查看gc、类加载、本地方法调用 | |
| -XX:+PrintHeapAtGC | 打印GC触发时的堆栈 | |
| -Xloggc:log/gc.log | 输出gc log | |
| -XX:+HeapDumpOnOutOfMemoryError | 内存溢出时产生堆dump | |
| -XX:+HeapDumpOnCtrlBreak | Crtl+Break产生dump |
其他
-Xverify:none 跳过编译检查
服务器推荐GC参数:
-Xloggc:gc.log
-XX:+PrintGCDetails
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintGCApplicationConcurrentTime