欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中的jinfo命令使用詳解

 更新時間:2022年03月18日 11:58:27   作者:萬貓學社  
jinfo是JDK提供的一個可以實時查看Java虛擬機各種配置參數(shù)和系統(tǒng)屬性的命令行工具,本文給大家介紹下Java中的jinfo命令使用,感興趣的朋友一起看看吧

jinfo命令簡介

jinfo(Java Virtual Machine Configuration Information)是JDK提供的一個可以實時查看Java虛擬機各種配置參數(shù)和系統(tǒng)屬性的命令行工具。使用jps命令的-v參數(shù)可以查看Java虛擬機啟動時顯式指定的配置參數(shù),如果想查看沒有顯式指定的配置參數(shù)就可以使用jinfo命令進行查看。另外,jinfo命令還可以查詢Java虛擬機進程的System.getProperties()的內(nèi)容。

在沒有dbgeng.dll的Windows系統(tǒng)中,必須安裝用于Windows的調(diào)試工具才能使jinfo命令正常工作,PATH環(huán)境變量應該包含jvm.dll的位置。

jinfo命令參數(shù)

命令語法:

jinfo [option] pid

命令參數(shù)說明:

  • option:jinfo命令的可選參數(shù)。如果沒有指定這個參數(shù),jinfo命令會顯示所有的配置參數(shù)和系統(tǒng)屬性。
  • pid:要打印配置信息的Java虛擬機的進程ID。

想要要獲取運行的Java虛擬機進程的列表,可以使用ps命令(Linux系統(tǒng)中)或tasklist命令(Windows系統(tǒng)中),如果Java虛擬機進程沒有在單獨的docker實例中運行,可以使用jps命令。

option都有哪些參數(shù)呢?我們來看一下。

-flag name

顯示指定名稱對應的配置參數(shù),比如,查看了簡單GC日志模式(PrintGC)是否開啟:

# jinfo -flag PrintGC 15729
-XX:-PrintGC

-flag [+|-]name

啟用或禁用指定名稱的參數(shù),該參數(shù)必須為Boolean類型。比如,開啟簡單GC日志模式:

# jinfo -flag +PrintGC 15729
# jinfo -flag PrintGC 15729
-XX:+PrintGC

比如,禁用簡單GC日志模式:

# jinfo -flag -PrintGC 15729
# jinfo -flag PrintGC 15729
-XX:-PrintGC

-flag name=value

不需要重啟Java虛擬機,修改指定名稱的參數(shù)為指定的值。比如,修改空閑堆空間的最小百分比(MinHeapFreeRatio)為30%:

# jinfo -flag MinHeapFreeRatio 15729
-XX:MinHeapFreeRatio=40
# jinfo -flag MinHeapFreeRatio=30 15729
# jinfo -flag MinHeapFreeRatio 15729
-XX:MinHeapFreeRatio=30

當然不是所有參數(shù)都可以這樣修改的,比如并發(fā)垃圾收集器將使用的線程數(shù)(ConcGCThreads):

# jinfo -flag ConcGCThreads=5 15729
Exception in thread "main" com.sun.tools.attach.AttachOperationFailedException: flag 'ConcGCThreads' cannot be changed

        at sun.tools.attach.LinuxVirtualMachine.execute(LinuxVirtualMachine.java:229)
        at sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:261)
        at sun.tools.attach.HotSpotVirtualMachine.setFlag(HotSpotVirtualMachine.java:234)
        at sun.tools.jinfo.JInfo.flag(JInfo.java:134)
        at sun.tools.jinfo.JInfo.main(JInfo.java:81)

那么,有哪些配置參數(shù)是支持動態(tài)修改的呢?我們可以通過java -XX:+PrintFlagsInitial命令找到標記為manageable的配置參數(shù),運行結果如下圖所示:

-flags

顯示全部的配置參數(shù),比如:

# jinfo -flags 15729
Attaching to process ID 15729, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.251-b08
Non-default VM flags: -XX:CICompilerCount=4 -XX:ConcGCThreads=2 -XX:G1HeapRegionSize=1048576 -XX:InitialHeapSize=1073741824 -XX:MarkStackSize=4194304 -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=536870912 -XX:MetaspaceSize=268435456 -XX:MinHeapDeltaBytes=1048576 -XX:MinHeapFreeRatio=30 -XX:NewSize=536870912 -XX:-PrintGC -XX:SurvivorRatio=4 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseG1GC 
Command line:  -Xmx1g -Xms1g -Xmn512m -XX:SurvivorRatio=4 -XX:MetaspaceSize=256m -XX:+UseG1GC

-sysprops

以鍵值對的方式顯示當前Java虛擬機的全部的系統(tǒng)屬性,比如:

# jinfo -sysprops 15729
Attaching to process ID 15729, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.251-b08
java.runtime.name = Java(TM) SE Runtime Environment
java.vm.version = 25.251-b08
sun.boot.library.path = /usr/local/java/jdk1.8.0_251/jre/lib/amd64
java.protocol.handler.pkgs = org.springframework.boot.loader
java.vendor.url = http://java.oracle.com/
java.vm.vendor = Oracle Corporation
path.separator = :
file.encoding.pkg = sun.io
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
sun.os.patch.level = unknown
sun.java.launcher = SUN_STANDARD
user.country = CN
java.vm.specification.name = Java Virtual Machine Specification
PID = 15729
java.runtime.version = 1.8.0_251-b08
java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment
os.arch = amd64
java.endorsed.dirs = /usr/local/java/jdk1.8.0_251/jre/lib/endorsed
line.separator = 
......

-h 和 -help

顯示jinfo命令的幫助信息。

結尾

雖然jinfo命令已經(jīng)推出很久并且使用頻率比較搞,但它仍然是一個“實驗性質(zhì)的,并且沒有技術支持的”(Experimental and Unsupported)工具,日后可能會被轉正,也有可能在某個JDK版本中無聲無息地消失。所以,且用且珍惜吧。

到此這篇關于Java的jinfo命令使用詳解的文章就介紹到這了,更多相關Java jinfo命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 聊聊finally中的代碼一定會執(zhí)行嗎

    聊聊finally中的代碼一定會執(zhí)行嗎

    通常在面試中,只要是疑問句一般答案都是“否定”的,因為如果是“確定”和“正?!钡?那面試官就沒有必要再問了嘛,本文想和大家聊聊finally中的代碼一定會執(zhí)行嗎?,感興趣的朋友跟著小編一起來看看吧
    2023-12-12
  • Log4j2?重大漏洞編譯好的log4j-2.15.0.jar包下載(替換過程)

    Log4j2?重大漏洞編譯好的log4j-2.15.0.jar包下載(替換過程)

    Apache?開源項目?Log4j?的遠程代碼執(zhí)行漏洞細節(jié)被公開,由于?Log4j?的廣泛使用,該漏洞一旦被攻擊者利用會造成嚴重危害,下面小編給大家?guī)砹薒og4j2?重大漏洞編譯好的log4j-2.15.0.jar包下載,感興趣的朋友一起看看吧
    2021-12-12
  • servlet監(jiān)聽器的學習使用(三)

    servlet監(jiān)聽器的學習使用(三)

    這篇文章主要為大家詳細介紹了servlet監(jiān)聽器學習使用的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Spring配置數(shù)據(jù)源流程與作用詳解

    Spring配置數(shù)據(jù)源流程與作用詳解

    這篇文章主要介紹了使用SpringBoot配置多數(shù)據(jù)源的經(jīng)驗分享,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • springcloud feign docker上無法通訊的問題及解決

    springcloud feign docker上無法通訊的問題及解決

    這篇文章主要介紹了springcloud feign docker上無法通訊的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • java.lang.Instrument 代理Agent使用詳細介紹

    java.lang.Instrument 代理Agent使用詳細介紹

    這篇文章主要介紹了java.lang.Instrument 代理Agent使用詳細介紹的相關資料,附有實例代碼,幫助大家學習參考,需要的朋友可以參考下
    2016-11-11
  • java實現(xiàn)登錄窗口

    java實現(xiàn)登錄窗口

    這篇文章主要為大家詳細介紹了java實現(xiàn)登錄窗口,含驗證碼驗證、賬戶注冊等,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Spring整合MyBatis的三種方式

    Spring整合MyBatis的三種方式

    這篇文章主要介紹了Spring整合MyBatis的三種方式,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Java 數(shù)組差集實例代碼

    Java 數(shù)組差集實例代碼

    這篇文章主要介紹了Java 數(shù)組差集實例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • JAVA利用HttpClient進行POST請求(HTTPS)實例

    JAVA利用HttpClient進行POST請求(HTTPS)實例

    下面小編就為大家?guī)硪黄狫AVA利用HttpClient進行POST請求(HTTPS)實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起 小編過來看看吧
    2016-11-11

最新評論