Trace跟踪参数
-verbose:gc 打开gc的跟踪方式
-XX:+PrintGC 可以打印gc的简要信息
-XX:+PrintGCDeteils 打印gc的详细信息
-XX:+PrintGCTimeStamps 打印GC发生的时间戳
-Xloggc:log/gc.log 指定gc log位置,以文件输出
-XX:+PrintHeadAtGC 在gc调用的前后打印堆的信息
-XX:+TraceClassLoading 监控类的加载
-XX:+PrintClassHistogram 在控制台,按下ctrl+ break 所有的类的使用情况
堆的分配参数
-xmx 指定最大堆
-xms 指定最小堆
-Xmn 设置新生代大小
-XX:NewRatio 设置新生代和老年代(不包含永久区)的比例 4表示:新生代: 老年代 为1:4 即新生代占 1/5
-XX:SurvivorRatio 设置两个Survivor区和eden的比 8表示 两个Survivor :eden 为2:8 即一个Survivor 占1/10
-XX:+HeadDumpOnOutOfMemoryError 将OOM时 对信息导出至文件
-XX:HeadDumpPath 导出OOM的路径
堆 总结
根据实际事情调整新生代和幸存代的大小
官方推荐新生代占堆的3/8
幸存代占新生代的1/10
在OOM时,记得Dump出堆,确保可以排查现场问题
永久区的分配参数
-XX:PermSize
-XX:MaxPermSize
栈的分配参数
-Xss
通常只有几百K
决定了函数调用的深度
每个线程都有独立的栈空间
局部变量、参数 分配在栈上