咱们接着上一章节[JVM教程与调优] JVM都有哪些参数类型?的内容继续讲解,这章咱们来介绍一下:如何查看JVM运行时参数。这一点十分重要,由于咱们在进行JVM参数调优的时候,咱们首先得知道目前系统运行的值是什么,而后相应的根据相关参数进行调优。html
1.-XX:+PrintFlagsInitial(查看初始值) 2.-XX:+PrinFlagsFinal(查看最终值) 3.-XX:+UnlockExperimentalVMOptions(解锁实验参数) 4.-XX:+UnlockDiagnosticVMOptions(解锁诊断参数) 5.-XX:+PrintCommandLineFlags(打印命令行参数)java
bool类型 属性名:UseG1GC 值:false 所以能够看出,并无使用G1GC。git
InitialHeapSize := 130023424 表示初始堆的值大小。github
注意: =表示默认值 :=被用户或者JVM修改后的值tomcat
能够看到有很是多的参数。有兴趣的小伙伴能够本身试试。微信
那么刚才咱们看到的参数是哪一个进程的呢? 答案是:经过执行java -XX:+PrinFlagsFinal -version
这个命令时的进程参数值。oracle
若是咱们要查看一个在运行时的JVM参数值,那么如何查看呢?这就是咱们后面讲到的jinfo,在此以前,咱们先来看一下·jps·。学习
jps
它就相似于Linux系统中的ps
,也是用来查看系统进程的。不过它是专门用来查看java的进程。接下来咱们来简单演示一下jps
的使用spa
更多jps
的适用参数命令,能够去这里查看 命令行
那么咱们如何去查看一个正在运行的JVM的参数值呢? 那么用jinfo
就能够了。
再例如,咱们如何查看tomcat的最大内存值是多少?那么咱们首先得知道命令,而后找到对应的pid。
如图,其中23789就是tomcat
的进程pid
,查看对内存大小命令:MaxHeapSize
。 能够看到最大堆内存大小为268435456
能够看到咱们手动赋值的参数,也能够看到默认有的参数值。
垃圾回收这块很是有用,由于咱们可以很是清楚的看到内存结构里面每一块的大小是如何进行变化的。
options:-class,-compiler,-gc,-printcompilation
咱们来查看一下jstat文档。
咱们来介绍一下几个命令。
jstat -class 3176 1000 10
后面的1000表示每隔1000ms,10表示一共输出10次
咱们来看一下文档中是如何介绍-class命令。
分别表示什么含义呢?
命令:-gc、-gcutil、-gccause、-gcnew、-gcold
输入:jstat -gc 3176 1000 3
一样,后面表示每隔1000ms,一共打印输出3次
咱们一样来看一下文档中的-gc的命令
咱们来总结一下-gc输出结果。
命令:-compiler、-printcompilation
咱们来演示一下JIT编译。
这些都表示什么含义呢?咱们来看一下咱们的文档。
小伙伴能够结合一下上方的演示图案,来理解一下是什么含义。
你们了解一下就能够,实际工做中做用并非很大。
以上都是以JDK1.8进行介绍。这里小伙伴们先简单了解一下这一块,后续再详细介绍。小伙伴们能够本身在电脑上尝试一下使用命令,观察一下打印结果。 关于JVM参数的命令,在文档中还有更多的详细介绍。感兴趣的小伙伴,能够自行去查看。 传送门:docs.oracle.com/javase/8/do…
下一章,咱们未来学习一下JVM的内存结构以及内存溢出。感兴趣的小伙伴,能够关注一下~
文章收录至 Github: github.com/CoderMerlin… Gitee: gitee.com/573059382/c… 欢迎关注并star~