JVM参数简介

2019-09-23  本文已影响0人  Coding小聪

1. JVM参数分类

2. 标准参数(-)

比如-version、-help等,几乎所有的JDK版本都不会改变。下面再列举几个常见的标准参数:

3. 非标准参数(-X)

一般很少使用。

4. 非Stable参数(-XX)

这类参数是进行jvm参数调优可能会进行修改,不过这类参数不是稳定的,不同版本的jvm中,可能对应的参数名称不同。并且可能在未来的版本被删除或重命名。

4.1 类型分类

-XX参数按照参数类型进行分类的话,可以分成两类:布尔类型和KV键值对类型。

4.1.1 布尔类型

-XX:+某个属性 开启某个jvm属性,-XX:+PrintGCDetails,开启GC详细信息。
-XX:-某个属性 关闭某个jvm属性,不是所有的属性都如此

4.1.2 KV键值对类型

-XX:属性key=值value。比如-XX:Metaspace=128m-XX:SurvivorRatio=4

4.2. 功能分类

-XX参数按照功能进行分类的话,可以大概分为

4.2.1 行为参数

4.2.2 性能参数

4.2.3 调试参数

4.3. 查看参数

  1. 查看某个参数

使用jps -l配合jinfo -flag JVM参数 pid 。先用jsp -l查看java进程,选择某个进程号。

17888 org.jetbrains.jps.cmdline.Launcher
5360 org.jetbrains.idea.maven.server.RemoteMavenServer
18052 demo3.demo3

jinfo -flag PrintGCDetails 18052可以查看18052 Java进程的PrintGCDetails参数信息。

-XX:-PrintGCDetails
  1. 查看所有参数

使用jps -l配合jinfo -flags pid可以查看所有参数。

也可以使用java -XX:+PrintFlagsInitial

[Global flags]
     intx ActiveProcessorCount                      = -1            {product}
    uintx AdaptiveSizeDecrementScaleFactor          = 4             {product}
    uintx AdaptiveSizeMajorGCDecayTimeScale         = 10            {product}
    uintx AdaptiveSizePausePolicy                   = 0             {product}
······
    uintx YoungPLABSize                             = 4096          {product}
     bool ZeroTLAB                                  = false         {product}
     intx hashCode                                  = 5             {product}

  1. 查看修改后的参数

使用java -XX:PrintFlagsFinal可以查看修改后的参数,与上面类似。只是修改过后是:=而不是=

  1. 查看常见参数

如果不想查看所有参数,可以用-XX:+PrintCommandLineFlags查看常用参数。

-XX:InitialHeapSize=132375936 -XX:MaxHeapSize=2118014976 -XX:+PrintCommandLineFlags -XX:+UseCompressedCla

扩展阅读

https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html

https://github.com/MaJesTySA/JVM-JUC-Core/blob/master/docs/JVM.md#%E6%A0%87%E9%85%8D%E5%8F%82%E6%95%B0

上一篇下一篇

猜你喜欢

热点阅读