Jvm3、JVM和GC常用的参数

一、跟踪参数

 1、-verbose:gc

       -XX:+printGC 二者都可以打印GC的简要信息

在Idea中设置VM options: 例如--> -verbose:gc。

2、-XX:+PrintGCDetails 可以打印GC的详细信息

-XX:+PrintHeapAtGC 每次GC时都打印堆信息

3 、-Xmx -Xms 指定堆内存的最大值和最小值 例如-Xmx20m -Xms10m

 使用Runtime.getRuntime().xxx()方法能获取许多关于虚拟机配置的结果。比如

Runtime.getRuntime().maxMemory()获取最大堆内存。

4、-Xmn 设置新生代大小

      -XX:NewRatio 设置新生代与老年代的比例。4就表示新生代:老年代=1:4,也就是新生代占总内存的1/5。

      -XX:SurvivorRatio 设置survivor区与新生代的比例。就是from、to与eden的比例。8表示survivo:eden=2:8。就是说s占年轻代的1/10。

      -XX:PermSize --XX:MaxPermSize 设置永久区的初始化空间与最大空间

      -Xss 设置栈大小

5、-Xloggc:log/gc.log指定GC日志文件的输出位置

      -XX:+TraceClassLoading 打印加载的类信息

      -XX:+HeapDumpOnOutMemoryError 内存溢出时导出堆信息到文件

      -XX:+HeapDumpPath 设置导出路径

6、推荐配置

      根据实际情况调整新生代与幸存代的大小。推荐新生代占堆内存的3/8,幸存代占新生代的1/10。

最好设置-XX:+HeapDumpOnOutMemoryError与导出路径,以便排查问题。

 

你可能感兴趣的:(JVM相关)