1. 调优的原则:
合理编写代码
合理利用硬件资源
合理地进行条用
2. JVM调优的宗旨:
降低FULL GC的执行频次,减小GC的执行时间。
3. 添加常用的参数:
-XX:+HeapDumpOnOutOfMemoryError 默认关闭 在发生内存溢出异常时是否生成堆转储快照,
-Xloggc:D:/gc.log 打印GC的日志到文件
若为jdk1.8的编译器,设置垃圾回收器为G1
-XX:+UseG1GC
-Xmn2g 设置年轻代的大小2G 经验值 1/4-1/3 , Age =15的值。
-XX:SurvivorRatio=4 设置Eden,S0,S1区域的比例,默认为8:1:1
-server 以sever模式运行
备注:Java里面有两种参数,一种是标准参数,它是不以jdk的版本变化而变化的,可以通过java -X help 查看,他所有添加的参数都是 -Xms:500m 这种。
第二种是非标准参数:这种参数相对来说不稳定,随着JVM版本的变化可能会发生变化。
Boolean 类型
格式: -XX:[+|-]<name> 表示启动或禁用name属性
例如: -XX:+UseSerialGC
Key-Value 类型
格式: -XX:<name>=<value> 表示name的属性值为value.
例如:-XX:MaxTenuringThreshold=15
4. 常用的JVM调优工具
1. jps 主要用来显示当前java进程的ID号。
2. jstat JVM统计监测工具,主要用于监测并显示JVM的性能统计信息。
3. jconsole 图形化用户界面的监测工具,主要用于监测并显示用于运行于Java平台上的应用程序的性能和资源的占用信息。
4. Jmap Java内存映射工具,主要用于打印指定的Java进程,核心文件或远程调用服务器的共享对象内存映射或堆内存细节。
5. jstact Java堆栈跟踪工具,主要用于打印指定Java进程,核心文件或远程调试服务器的java线程的堆栈跟踪信息。
6. jvisualvm.exe jvm监测,故障排除,分析工具,主要以图形界面的方式提供运行于指定虚拟机的Java应用程序的详细信息。