JVM的常用配置参数

半世苍凉 提交于 2019-12-23 03:10:28

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!