[JVM教程与调优] JVM都有哪些参数类型?

JVM都有哪些参数类型?

JDK自己是提供了一些监控工具,有一些是命令行,也有图形界面。本次介绍命令行如何进行监控。
命令行是很是重要的,由于在咱们生产环境基本上是没有图形界面的,彻底是经过命令行。java

主要内容:git

  • JVM的参数类型
  • 运行时JVM参数查看
  • jstat查看虚拟机统计信息
  • jmap+MAT实战内存溢出
  • jstack实战死循环与死锁

JVM参数类型

那么都有哪些JVM参数类型呢?一共分为三大类github

  • 标准参数
  • X参数
  • XX参数

标准参数

1.-help
2.-server -client
3.-version -showversion
4.-cp -classpathweb

标准参数,在各个版本的JVM里面中,基本保持不变。相对比较稳定
例如:java -help
标准参数 java -help面试

X参数

  • 非标准参数

也就是说在各个版本的JVM中可能会变,可是变化的也比较小。安全

1.-Xint:解释执行
2.-Xcomp:第一次使用就编译成本地代码
3.-Xmixed:混合模式,JVM本身来决定是否编译成本地代码微信

举例:网络

默认混合模式

设置成解释模式

设置成编译模式

可是咱们这块X参数平时用的并很少,用的更多而是后面这块XX参数。工具

XX参数

这块参数用的是很是多,相信许多同窗在网上会常常看到XX参数来设置JVM。咱们先来看下它都有什么特色。
特色:spa

  • 非标准化参数化
  • 相对不稳定
  • 主要用于JVM调优和Debug

分类

主要分为两大类

  • Boolean类型

格式:-XX:[+-]<name>表示启用或者禁用name属性。其中+号表示启用该参数,-号表示禁用该参数。

好比:

-XX:+UseConcMarkSweepGC

表示启用了CMS垃圾收集器

-XX:+UseG1GC

表示启用了G1垃圾收集器

  • 非Boolean类型

格式:-XX:<name>=<value>表示name属性的值是value,主要是以key,value形式存在。

好比:

-XX:MaxGCPauseMillis=500

表示GC最大的停顿时间是500ms。

-XX:GCTimeRatio=19

表示GCTimeRatio等于19。

小结

以上先简单了解一下分为两大类:Boolean 与 非Boolean类型。Boolean是带有+-号,而非Boolean类型是key,value形式存在,中间用等号。

-Xmx -Xms

这两个参数,相信许多小伙伴们都见过。这两个参数分别是一个设置最大内存,一个设置最小内存。

  • 不是X参数,而是XX参数

1.-Xms等价于-XX:InitialHeapSize
2.-Xmx等价于-XX:MaxHeapSize
3.-Xss等价于-XX:ThreadStackSize

InitialHeapSize初始堆的大小。MaxHeapSize最大的堆大小。ThreadStackSize线程堆栈大小

能够先简单查看下运行后的进程,最大的堆大小值。
最大的堆大小

查看一下线程的堆栈大小。

线程堆栈大小

能够看到这块的线程堆栈大小有1024k,默认状况不作修改的话,堆栈其中的一个线程就有1024k,这线程应该仍是比较大的。咱们在调优的时候仍是会把这个值调小一些。

此次就先介绍到这里,下一章讲介绍如何查看JVM运行时参数

## 推荐

文末

文章收录至
Github: https://github.com/CoderMerlin/coder-programming
Gitee: https://gitee.com/573059382/coder-programming
欢迎关注并star~

微信公众号

相关文章
相关标签/搜索