JVM的常用配置参数

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
决定了函数调用的深度
每个线程都有独立的栈空间
局部变量、参数 分配在栈上

posted @ 2017-08-08 14:05  程序员小李  阅读(438)  评论(0编辑  收藏  举报