本文主要是介绍工欲善其事必先利其器-JVM相关参数、命令、常用工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
注意:本文不做相关参数、命令、常用工具的演示。
JVM参数
大体上分为四类:
1.标准参数
:
就是不会随着jdk的版本不同而不同。如java -version、java -help 2.-X参数
:
如 java -Xint -version、 java -Xmixed -version
3.-XX参数
:
-XX:[+/-] :+就是开启 -就是关闭。比如: -XX:+UseG1GC 开启G1垃圾收集器
-XX: name=value 比如: -XX:InitialHeapSize=100M 设置堆内存大小为100MB
4.其他参数
:
可以看作是对-XX参数的一个缩写。如:
-Xms100M 等同于 -XX:InitialHeapSize=100M
-Xmx100M
-Xss100
应用场景:
1.开发工具中设置,如IDEA、Eclipse
2.运行jar包的时候:java -XX:+UseG1GC xxx.jar
3.web容器,比如tomcat,可以在脚本中进行设置
3.使用jinfo实时调整某个java进程的参数(参数只有被标记为manageable的flags可以被实时修改)
JVM命令
(1)jps: 当前的java进程
(2)jinfo: 查看某个java进程目前的参数设置的情况
(3)jstat: 查看java进程统计性能
(4)jstack:查看当前java进程的堆栈信息
(5)jmap:打印出堆转存储快照 jmap -heap PID
dump出堆内存相关信息:jmap -dump:format=b,file=heap.hprof PID
常用工具
(1)jconsole
(2)jvisualvm
(3)arthas
(4)mat/perfma:内存相关的信息
(5)gceasy.io/gcviewer
GC优化
就是通过不断调整,观察GC日志的吞吐量和停顿时间,寻找最佳值
如下参数: 使用G1收集器,打印GC的一些信息,并输出到gc.log 这个文件里
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+UseG1GC -Xloggc:gc.log
导出gc日志后会发现看不懂,浏览器打开gceasy.io,可以在线查看gc.log文件。或者使用gcviewer客户端查看。
主要就是调整各种参数、垃圾收集器—>查看吞吐量和停顿时间的变量
追求的是高吞吐量,低停顿时间
性能优化指南
<<上一篇:JVM垃圾回收
这篇关于工欲善其事必先利其器-JVM相关参数、命令、常用工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!