JVM - 列出JVM默认参数及运行时生效参数
生活随笔
收集整理的這篇文章主要介紹了
JVM - 列出JVM默认参数及运行时生效参数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- Pre
- -XX:+PrintFlagsInitial 列出JVM參數的默認值
- -XX:+PrintFlagsFinal 列出運行程序時生效的值
- -XX:+PrintCommandLineFlags 列出被用戶或者JVM優化設置過的詳細的XX參數的名稱和值
- 列舉附加隱藏參數
- jinfo 查看正在運行的Java應用程序的擴展參數
- jps
- jinfo
Pre
有的時候,想看下自己沒有設置的JVM參數的值, 或者有的時候想看下JVM某個參數的默認值 ,亦或想看下用戶或者JVM修改的JVM參數 ?
咋辦 ?
JVM在1.6.0_14以后提供了幾個參數可以打印出來所有XX參數和對應的值
-XX:+PrintFlagsInitial 表示打印出所有參數選項的默認值-XX:+PrintFlagsFinal 表示打印出所有參數選項在運行程序時生效的值執行的話
java -XX:+PrintFlagsInitial java -XX:+PrintFlagsFinal-XX:+PrintFlagsInitial 列出JVM參數的默認值
Java誕生了25年+, N多個參數 ,鬼記得住~
我們只需要直到常用的,會找就可以了。
我這用的1.8.0_181 列舉出了 866個
部分截圖如下
- 第一列表示參數的數據類型
- 第二列是名稱
- 第三列”=”表示第四列是參數的默認值,如果是”:=” 表明了參數被用戶或者JVM賦值了
- 第四列為值
- 第五列是參數的類別
-XX:+PrintFlagsFinal 列出運行程序時生效的值
”:=” 表明了參數被用戶或者JVM賦值了, 也間接證明了Java8默認的垃圾回收器是Parallel + Parallel Old .
-XX:+PrintCommandLineFlags 列出被用戶或者JVM優化設置過的詳細的XX參數的名稱和值
這一步其實就是列出 -XX:+PrintFlagsFinal的結果中第三列有":="的參數 。
也可以理解為打印命令行參數
列舉附加隱藏參數
-XX:+UnlockDiagnosticVMOptions 解鎖診斷參數-XX:+UnlockExperimentalVMOptions 解鎖實驗參數-XX:+UnlockInternalVMOptions 解鎖內部參數這個就是隱藏副本了 ,愿君多留意~
jinfo 查看正在運行的Java應用程序的擴展參數
當然了 還有其他參數 也可以看
jps + jinfojps
[root@artisan ~]# jps --help illegal argument: --help usage: jps [-help]jps [-q] [-mlvV] [<hostid>]Definitions:<hostid>: <hostname>[:<port>]最常用的jps , 查看PID
輸出更多信息
jps -v【demo】
[root@artisan ~]# jps 5811 kooteam.jar 6043 Jps [root@artisan ~]# jps -v 5811 kooteam.jar -Xms1024m -Xmx1024m 6054 Jps -Denv.class.path=.:/usr/java/jdk1.8.0_221-amd64/jre/lib:/usr/java/jdk1.8.0_221-amd64/lib:/usr/java/jdk1.8.0_221-amd64/lib/tools.jar -Dapplication.home=/usr/java/jdk1.8.0_221-amd64 -Xms8m [root@artisan ~]#jinfo
[root@artisan ~]# jinfo --help Usage:jinfo [option] <pid>(to connect to running process)jinfo [option] <executable <core>(to connect to a core file)jinfo [option] [server_id@]<remote server IP or hostname>(to connect to remote debug server)where <option> is one of:-flag <name> to print the value of the named VM flag-flag [+|-]<name> to enable or disable the named VM flag-flag <name>=<value> to set the named VM flag to the given value-flags to print VM flags-sysprops to print Java system properties<no option> to print both of the above-h | -help to print this help message [root@artisan ~]#【查看jvm的參數】
[root@artisan ~]# jinfo -flags 5811 Attaching to process ID 5811, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.221-b11 Non-default VM flags: -XX:CICompilerCount=2 -XX:InitialHeapSize=1073741824 -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=357892096 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=357892096 -XX:OldSize=715849728 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps Command line: -Xms1024m -Xmx1024m [root@artisan ~]#【查看java系統參數】
[root@artisan ~]# jinfo -sysprops 5811 Attaching to process ID 5811, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.221-b11 java.runtime.name = Java(TM) SE Runtime Environment java.vm.version = 25.221-b11 sun.boot.library.path = /usr/java/jdk1.8.0_221-amd64/jre/lib/amd64 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 = US user.dir = /root java.vm.specification.name = Java Virtual Machine Specification java.runtime.version = 1.8.0_221-b11 java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment os.arch = amd64 java.endorsed.dirs = /usr/java/jdk1.8.0_221-amd64/jre/lib/endorsed line.separator = java.io.tmpdir = /tmp java.vm.specification.vendor = Oracle Corporation os.name = Linux sun.jnu.encoding = UTF-8 java.library.path = /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib sun.nio.ch.bugLevel = java.specification.name = Java Platform API Specification java.class.version = 52.0 sun.management.compiler = HotSpot 64-Bit Tiered Compilers os.version = 3.10.0-123.el7.x86_64 user.home = /root user.timezone = Asia/Shanghai java.awt.printerjob = sun.print.PSPrinterJob file.encoding = UTF-8 java.specification.version = 1.8 user.name = root java.class.path = ./kooteam.jar java.vm.specification.version = 1.8 sun.arch.data.model = 64 sun.java.command = ./kooteam.jar java.home = /usr/java/jdk1.8.0_221-amd64/jre user.language = en java.specification.vendor = Oracle Corporation awt.toolkit = sun.awt.X11.XToolkit java.vm.info = mixed mode java.version = 1.8.0_221 java.ext.dirs = /usr/java/jdk1.8.0_221-amd64/jre/lib/ext:/usr/java/packages/lib/ext sun.boot.class.path = /usr/java/jdk1.8.0_221-amd64/jre/lib/resources.jar:/usr/java/jdk1.8.0_221-amd64/jre/lib/rt.jar:/usr/java/jdk1.8.0_221-amd64/jre/lib/sunrsasign.jar:/usr/java/jdk1.8.0_221-amd64/jre/lib/jsse.jar:/usr/java/jdk1.8.0_221-amd64/jre/lib/jce.jar:/usr/java/jdk1.8.0_221-amd64/jre/lib/charsets.jar:/usr/java/jdk1.8.0_221-amd64/jre/lib/jfr.jar:/usr/java/jdk1.8.0_221-amd64/jre/classes java.vendor = Oracle Corporation com.zaxxer.hikari.pool_number = 1 file.separator = / java.vendor.url.bug = http://bugreport.sun.com/bugreport/ sun.io.unicode.encoding = UnicodeLittle sun.cpu.endian = little sun.cpu.isalist = [root@artisan ~]#總結
以上是生活随笔為你收集整理的JVM - 列出JVM默认参数及运行时生效参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM - 解读GC中的 Safe P
- 下一篇: JVM - 要上线了,JVM参数还没正儿