栈调整大小: -Xss256k
方法区调整大小:jdk1.7以前:-XX:PermSize; -XX:MaxPermSize
jdk1.8以后:-XX:MetaspaceSize; -XX:MaxMetaspaceSize
Jdk1.8以后大小就只受本机总内存的限制,如 -XX:MaxMetaspaceSize=3M
堆调整大小:-Xms: 堆的最小值;
-Xmx: 堆的最大值;
-Xmn: 新生代的大小;
-XX:NewSize; 新生代最小值;
-XX:MaxNewSize: 新生代最大值;
例如- Xmx256m
直接内存调整大小:-XX:MaxDirectMemorySize= 默认和堆大小保持一致
分配缓冲设置(TLAB):-XX:+UseTLAB 在Eden区分配内存,大小默认 Eden 的 1%
垃圾收集
-XX:+PrintGCDetails 打印垃圾回收日志, 程序退出时输出当前内存的分配情况
-XX:PretenureSizeThreshold=4m 超过多少大小的对象直接进入老年代,参数只对 Serial 和 ParNew 两款收集器有效
-XX:SurvivorRatio=8 表示Eden和Survivor的比值,缺省为8 表示 Eden:From:To= 8:1:1,
-XX:+HeapDumpOnOutOfMemoryError 当堆内存空间溢出时输出堆的内存快照
垃圾收集器
-XX:+UseSerialGC 新生代和老年代都用串行收集器
-XX:+UseParNewGC 新生代使用 ParNew, 老年代使用 Serial Old
-XX:+UseParallelGC 新生代使用 ParallerGC, 老年代使用 Serial Old
-XX:+UseParNewGC 新生代使用 ParNew, 老年代使用 Serial Old
-XX:+UseConcMarkSweepGC 一般新生代使用 ParNew, 老年代的用 CMS
-XX:+UseG1GC 使用 G1 垃圾回收器
-XX:-HeapDumpOnOutOfMemoryError 默认关闭, 建议开启, 在 java.lang.OutOfMemoryError 异常出现时, 输出一个 dump.core 文件, 记录当时的堆内存快照
-XX:HeapDumpPath=./java_pid<pid>.hprof 用来设置堆内存快照的存储文件路径, 默认是 java 进程启动位置,
-XX:+PrintGC 调试跟踪之 打印简单的 GC 信息参数:
-XX:+PrintGCDetails, +XX:+PrintGCTimeStamps 打印详细的 GC 信息
-Xlogger:logpath 设置 gc 的日志路, 如: -Xlogger:log/gc.log, 将 gc.log 的路径设置到当前目录的 log 目录下。
-XX:+PrintHeapAtGC, 打印推信息
参数设置: -XX: +PrintHeapAtGC
应用场景: 获取 Heap 在每次垃圾回收前后的使用状况
-XX:+TraceClassLoading
参数方法: -XX:+TraceClassLoading
应用场景: 在系统控制台信息中看到 class 加载的过程和具体的 class 信息, 可用以分析类的加载顺序以及是否可进行精简操作。
-XX:+DisableExplicitGC 禁止在运行期显式地调用 System.gc()
逃逸分析
-XX:+DoEscapeAnalysis: 启用逃逸分析(默认打开)
-XX:+EliminateAllocations: 标量替换(默认打开)
-XX:+UseTLAB 本地线程分配缓冲(默认打开)