JVM:实战

Posted fcb-it

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM:实战相关的知识,希望对你有一定的参考价值。

参数

标准参数:不会随着JDK版本的变化而变化

java -version/-help

-X参数:

非标准参数:随着JDK版本变化而变化

  • Xint:解释执行
  • Xcomp:编译执行
  • Xmix:混合执行

-XX参数

boolean类型

-XX:[+/-]name:启动或停止
-XX: +UseSerialGC

非boolean类型

-XX:name=value
-XX:MaxHeapSize=100M

其他参数(等同于-XX参数)

-Xms100M ===> -XX:InitialHeapSize=100M
-Xmx100M ===> -XX:MaxHeapSize=100M
-Xss100k ===> -XX:ThreadStackSize=100k

查看所有的参数

-XX:+PrintFlagsFinal

使用命令

  • idea/ecplipse
  • java -XX:+UseG1GC xxx.jar
  • 实时修改 jinfo

常用参数

技术图片

命令

  • jps:查看当前java进程状态。java process status。
  • jinfo:查看或修改JVM参数。jinfo -flag UseG1GC PID
    实时修改值:jinfo -flag name=value PID(只有manageble参数才可以被修改)
  • jstat:jstat -class/-gc PID 时间 次数。
  • jstack:jstack PID,打印出PID进程中线程的情况,用来排查线程问题。
  • jmap:生成堆内存的快照 jmap -heap PID;jmap -dump:format=b,file=heap.hprof PID

工具

  • jconsole
  • jvisualvm

调优的维度

OOM,排查哪个对象占用的内存空间比较大

垃圾回收

MA Memory Analyzer:打开heap.hprof文件






以上是关于JVM:实战的主要内容,如果未能解决你的问题,请参考以下文章

理论+实战 构建完整JVM知识体系

理论+实战 构建完整JVM知识体系

JVM Tomcat性能实战

记一次 JVM OOM 实战优化

C++调用JVM.dll运行Java程序,JNI实战简例,精简JRE实战

深入理解JVM——JVM性能调优实战