參考博客:https://www.jianshu.com/p/8d8aef212b25java
jinfo(ConfigurationInfoforJava)的做用是實時地查看和調整虛擬機各項參數,使用jps命令的-v參數能夠查看虛擬機啓動時顯式指定的參數列表。
但若是想知道未被顯式指定的參數的系統默認值,除了去找資料外,就只能使用jinfo的-flag選項進行查詢。jvm
咱們能夠經過jinfo實時的修改虛擬機的參數,可是不是任何命令均可以修改,能夠修改的參數咱們先來執行這個命令:java -XX:+PrintFlagsFinal -version,會列出當前機器支持的全部參數,那麼用jinfo能夠修改的參數是什麼呢?ide
只有最後一列顯示manageable的這一列才能進行修改。idea
仔細查看發現可修改的參數其實並很少,jvm的運行內存一旦在運行時肯定下來,那麼就沒法修改。可是沒法一些錯誤信息沒有記錄,或者是處於關閉狀態,仍是能夠修改的命令行
例如咱們來查詢idea的進程是否開啓了GC日誌信息的詳細打印,咱們能夠執行這樣的命令:jinfo -flag PrintGCDetails 17312,從結果中咱們能夠看出是沒有開啓打印GC詳細信息的。線程
jinfo還能夠使用-sysprops選項把虛擬機進程的System.getProperties()的內容打印出來,能夠執行命令:jinfo -sysprops 17312。3d
jinfo -flags:會打印當前該線程全部相關的參數,例如咱們要來打印idea這個進程的全部相關參數,咱們來執行命令:jinfo -flags 40416會列出JVM的版本,顯示當前idea他的非缺省值的東西(也就是你修改過的),還有Command Line 表明的是命令行形式傳遞給idea這個進程的一些參數日誌
查看最大堆內存 jinfo -flag MaxHeapSize 17312 blog
查看所使用的垃圾收集器
jinfo -flag UseConcMarkSweepGC 17312進程
jinfo -flag UseG1GC 17312
jinfo -flag UseParallelGC 17312
能夠看出所使用的垃圾回收器是 ParallelGC