一、Trace跟踪参数(跟踪GC、类、变量的内存变化情况)
打开GC跟踪日志(每次执行GC的信息都能打印,获得执行时间,空间大小):
-verbose:gc 或
-XX:+printGC 或 -XX:+printGCDetails
类加载监控:(监控类加载的顺序)
-XX:+TraceClassLoading
二、堆的分频参数
-Xmx10M 指定最大堆,JVM最多能够使用的堆空间 (超过该空间引发OOM)
-Xms5M 指定最小堆,JVM至少会有的堆空间(尽可能维持在最小堆)
-Xmn 11M(new) 设置新生代大小
总结:
1.根据实际情况调整新生代和幸存代的大小
2.官方推荐:新生代占堆空间3/8
3.幸存代占新生代1/10
4.OOM时,dump出堆到文件,方便排查
三、栈的分配参数
-Xss 每个线程都有独立的栈空间(几百k,比较小)
需要大量线程时,需要尽可能减小栈空间
栈空间太小-----StackOverFlow栈溢出(一般递归时产生大量局部变量导致)