目录
verbose:gc启动jvm的时候,输出jvm里面的gc信息
-X:loggc:log/gc.log:指定输出gc.log的文件位置。
-XX:+PrintHeapAtGC:表示每次GC后,都打印堆的信息
前言
相信经过前几篇的讲解,大家已经对jvm有了一定的了解,那今天就来聊聊jvm参数。
一、jvm参数类型
答:根据开头可以分为三类:“-”、“-X”、“-XX”
1.标准参数(-):
所有的JVM实现都必须实现这些参数的功能,而且向后兼容
2.非标准参数(-X)
默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容
3.非Stable参数(-XX)
此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用
二、常用核心参数
-Xms
:Java堆内存的大小,必须以M为单位,默认物理内存的1/64(<1GB)
-Xmx
:Java堆内存的最大大小,必须以M为单位,默认物理内存的1/4(<1GB)
-Xss
:每个线程的栈内存大小,一般默认为512k
-XX:SurvivorRatio
:用来设置新生代中eden空间和from/to空间的比例,
即
-XX:SurvivorRatio=eden/from =eden/to
-XX:MetaspaceSize
:元空间初始大小(
JDK8
及以后)
-XX:MaxMetaspaceSize:
元空间最大可分配大小(
JDK8
及以后)
verbose:gc启动jvm的时候,输出jvm里面的gc信息
-XX:+printGC:同上
-XX:+PrintGCDetails:打印GC的详细信息。
-X:loggc:log/gc.log:指定输出gc.log的文件位置。
-XX:+PrintHeapAtGC:表示每次GC后,都打印堆的信息
三、配置jvm参数
1.idea开发界面中(方式一)
就可以看到了!!!
2.配置文件(方式二)
打开IDEA安装目录中的bin目录,找到并打开idea.exe.vmoptions配置文件,编辑配置文件后保存,重启idea生效。
在我们运行jar包时,可以直接把参数写在后面哦!
结语
关于jvm调优,大体路线如下:
- 记录好日志;
- 对程序做好性能监控;
- 根据日志和性能监控数据修改程序;
- 使用专业工具通过不同的JVM参数进行压测并获得最佳配置。