[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~

微信公衆號

相關文章
相關標籤/搜索