日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【JVM调优】JVM的运行参数

發布時間:2025/5/22 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【JVM调优】JVM的运行参数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在jvm中有很多的參數可以進行設置,這樣可以讓jvm在各種環境中都能高效的運行,絕大部分的參數保持默認即可

三種參數類型

jvm的參數類型分為三類,分別是

* 標準參數* -help* -version* -server與-client * -X參數 (非標準參數) * -Xint* -Xcomp * -XX參數(使用率較高)* -XX:newSize* -XX:+UseSerialGC

標準參數

-help

jvm的標準參數,一般都是很穩定的,在未來的JVM版本中不會改變,可以使用java -help

檢索出所有的標準參數。

[root@localhost ~]# java -help用法: java [options] <主類> [args...]Usage: java [-options] class [args...](to execute a class)or java [-options] -jar jarfile [args...](to execute a jar file)where options include:-d32 use a 32-bit data model if available-d64 use a 64-bit data model if available-server to select the "server" VMThe default VM is server.-cp <class search path of directories and zip/jar files>-classpath <class search path of directories and zip/jar files>A : separated list of directories, JAR archives,and ZIP archives to search for class files.-D<name>=<value>set a system property-verbose:[class|gc|jni]enable verbose output-version print product version and exit-version:<value>Warning: this feature is deprecated and will be removedin a future release.require the specified version to run-showversion print product version and continue-jre-restrict-search | -no-jre-restrict-searchWarning: this feature is deprecated and will be removedin a future release.include/exclude user private JREs in the version search-? -help print this help message-X print help on non-standard options-ea[:<packagename>...|:<classname>]-enableassertions[:<packagename>...|:<classname>]enable assertions with specified granularity-da[:<packagename>...|:<classname>]-disableassertions[:<packagename>...|:<classname>]disable assertions with specified granularity-esa | -enablesystemassertionsenable system assertions-dsa | -disablesystemassertionsdisable system assertions-agentlib:<libname>[=<options>]load native agent library <libname>, e.g. -agentlib:hprofsee also, -agentlib:jdwp=help and -agentlib:hprof=help-agentpath:<pathname>[=<options>]load native agent library by full pathname-javaagent:<jarpath>[=<options>]load Java programming language agent, see java.lang.instrument-splash:<imagepath>show splash screen with specified imageSee http://www.oracle.com/technetwork/java/javase/documentation/index.html for more details. [root@localhost ~]# java -help用法: java [options] <主類> [args...](執行類)或 java [options] -jar <jar 文件> [args...](執行 jar 文件)或 java [options] -m <模塊>[/<主類>] [args...]java [options] --module <模塊>[/<主類>] [args...](執行模塊中的主類)將主類, -jar <jar 文件>, -m 或 --module<模塊>/<主類> 后的參數作為參數傳遞到主類。其中, 選項包括:-d32 已過時, 在以后的發行版中將被刪除-d64 已過時, 在以后的發行版中將被刪除-cp <目錄和 zip/jar 文件的類搜索路徑>-classpath <目錄和 zip/jar 文件的類搜索路徑>--class-path <目錄和 zip/jar 文件的類搜索路徑>使用 : 分隔的, 用于搜索類文件的目錄, JAR 檔案和 ZIP 檔案列表。-p <模塊路徑>--module-path <模塊路徑>...: 分隔的目錄列表, 每個目錄都是一個包含模塊的目錄。--upgrade-module-path <模塊路徑>...: 分隔的目錄列表, 每個目錄都是一個包含模塊的目錄, 這些模塊用于替換運行時映像中的可升級模塊--add-modules <模塊名稱>[,<模塊名稱>...]除了初始模塊之外要解析的根模塊。<模塊名稱> 還可以為 ALL-DEFAULT, ALL-SYSTEM,ALL-MODULE-PATH.--list-modules列出可觀察模塊并退出-d <module name>--describe-module <模塊名稱>描述模塊并退出--dry-run 創建 VM 并加載主類, 但不執行 main 方法。此 --dry-run 選項對于驗證諸如模塊系統配置這樣的命令行選項可能非常有用。--validate-modules驗證所有模塊并退出--validate-modules 選項對于查找模塊路徑中模塊的沖突及其他錯誤可能非常有用。-D<名稱>=<>設置系統屬性-verbose:[class|module|gc|jni]啟用詳細輸出-version 將產品版本輸出到錯誤流并退出--version 將產品版本輸出到輸出流并退出-showversion 將產品版本輸出到錯誤流并繼續--show-version將產品版本輸出到輸出流并繼續--show-module-resolution在啟動過程中顯示模塊解析輸出-? -h -help將此幫助消息輸出到錯誤流--help 將此幫助消息輸出到輸出流-X 將額外選項的幫助輸出到錯誤流--help-extra 將額外選項的幫助輸出到輸出流-ea[:<程序包名稱>...|:<類名>]-enableassertions[:<程序包名稱>...|:<類名>]按指定的粒度啟用斷言-da[:<程序包名稱>...|:<類名>]-disableassertions[:<程序包名稱>...|:<類名>]按指定的粒度禁用斷言-esa | -enablesystemassertions啟用系統斷言-dsa | -disablesystemassertions禁用系統斷言-agentlib:<庫名>[=<選項>]加載本機代理庫 <庫名>, 例如 -agentlib:jdwp另請參閱 -agentlib:jdwp=help-agentpath:<路徑名>[=<選項>]按完整路徑名加載本機代理庫-javaagent:<jar 路徑>[=<選項>]加載 Java 編程語言代理, 請參閱 java.lang.instrument-splash:<圖像路徑>使用指定的圖像顯示啟動屏幕自動支持和使用 HiDPI 縮放圖像(如果可用)。應始終將未縮放的圖像文件名 (例如, image.ext)作為參數傳遞給 -splash 選項。將自動選取提供的最合適的縮放圖像。有關詳細信息, 請參閱 SplashScreen API 文檔@argument 文件一個或多個包含選項的參數文件-disable-@files阻止進一步擴展參數文件要為長選項指定參數, 可以使用 --<名稱>=<>--<名稱> <>
-version

查看jvm的版本

[root@localhost ~]# java -versionjava version "1.8.0_211"Java(TM) SE Runtime Environment (build 1.8.0_211-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

通過-D設置系統屬性參數

package cs.lx.jvm;/*** @項目名稱 demo* @包名 cs.lx.jvm* @類名 TestJVM* @作者 lx* @時間 2020/4/19 15:28* @描述*/public class TestJVM {public static void main(String[] args) {String str = System.getProperty("str");if (str == null){System.out.println("你好!!趙麗穎!!!");}else {System.out.println(str);}}}

用Linux編譯運行,通過-D設置屬性參數

# 根目錄下創建test文件夾存放java文件[root@localhost ~]# mkdir test# 查看目錄內容[root@localhost ~]# ll總用量 2drwxr-xr-x. 2 root root 6 108 23:57 test# 進入test目錄[root@localhost ~]# cd test# vim命令創建TestJVM.java文件,復制剛剛寫的代碼,esc返回,shift+:,輸入wq保存[root@localhost test]# vim TestJVM.java# 編譯class文件[root@localhost test]# javac TestJVM.java [root@localhost test]# ll總用量 8-rw-r--r--. 1 root root 575 108 23:58 TestJVM.class-rw-r--r--. 1 root root 225 108 23:58 TestJVM.java# 運行[root@localhost test]# java TestJVMmobaijun# 通過-D設置屬性參數[root@localhost test]# java -Dstr=nihaojvm TestJVM# 運行結果nihaojvm
-server與-client參數

可以通過-server或-client設置jvm的運行參數。

* 它們的區別是Server VM的初始堆空間會大一些,默認使用的是并行垃圾回收器,啟動慢運行快。 * Client VM相對來講會保守一些,初始堆空間會小一些,使用串行的垃圾回收器,它的目標是為了讓JVM的啟動速度更快,但運行速度會比Serverm模式慢些。 * JVM在啟動的時候會根據硬件和操作系統自動選擇使用Server還是Client類型的JVM。 * 32位操作系統* 如果是Windows系統,不論硬件配置如何,都默認使用Client類型的JVM。* 如果是其他操作系統上,機器配置有2GB以上的內存同時有2個以上CPU的話默認使用server模式,否則使用client模式。 * 64位操作系統* 只有server類型,不支持client類型。

測試:

[root@localhost test]# java -client -showversion TestJVMjava version "1.8.0_211"Java(TM) SE Runtime Environment (build 1.8.0_211-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)wanyuan[root@localhost test]# java -server -showversion TestJVMjava version "1.8.0_211"Java(TM) SE Runtime Environment (build 1.8.0_211-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)wanyuan# 由于機器是64位系統,所以不支持client模式

-X參數

jvm的-X參數是非標準參數,在不同版本的jvm中,參數可能會有所不同,可以通過java -X查看非標準參數。

英語特別牛的,請繞道

[root@localhost ~]# java -X-Xmixed mixed mode execution (default) # 混合模式執行-Xint interpreted mode execution only # 僅解釋模式執行# 用:分隔的目錄和zip/jar文件-Xbootclasspath:<directories and zip/jar files separated by :> # 設置搜索路徑引導類和資源set search path for bootstrap classes and resources# 用:分隔的目錄和zip/jar文件-Xbootclasspath/a:<directories and zip/jar files separated by :># 附加在引導類路徑末尾append to end of bootstrap class path# 用:分隔的目錄和zip/jar文件-Xbootclasspath/p:<directories and zip/jar files separated by :># 置于引導類路徑之前prepend in front of bootstrap class path# 顯示附加診斷消息-Xdiag show additional diagnostic messages# 禁用類垃圾收集-Xnoclassgc disable class garbage collection# 啟用增量垃圾收集-Xincgc enable incremental garbage collection# 將GC狀態記錄在文件中,帶時間戳-Xloggc:<file> log GC status to a file with time stamps# 禁用后臺編譯-Xbatch disable background compilation# 設置初始java堆大小-Xms<size> set initial Java heap size# 設置最大java堆大小-Xmx<size> set maximum Java heap size# 設置java線程堆棧大小-Xss<size> set java thread stack size# 輸出cpu配置文件數據-Xprof output cpu profiling data# 啟用最嚴格的檢查,預期將來的默認值-Xfuture enable strictest checks, anticipating future default# 減少java/VM對操作系統信號的使用(請參閱文檔)-Xrs reduce use of OS signals by Java/VM (see documentation)# 對jni函數執行其他檢查-Xcheck:jni perform additional checks for JNI functions# 不嘗試使用共享類數據-Xshare:off do not attempt to use shared class data# 在可能的情況下使用共享類數據(默認)-Xshare:auto use shared class data if possible (default)# 要求使用共享類數據,否則將失效-Xshare:on require using shared class data, otherwise fail.# 顯示所有設置并繼續-XshowSettings show all settings and continue-XshowSettings:all# 顯示所有設置并繼續show all settings and continue# 顯示所有與vm相關的設置并繼續-XshowSettings:vm show all vm related settings and continue-XshowSettings:properties# 顯示所有屬性設置并繼續show all property settings and continue-XshowSettings:locale# 顯示所有與區域設置相關的設置并繼續show all locale related settings and continue# -X 選項是非標準的選項,如有更改,恕不另行通知The -X options are non-standard and subject to change without notice.
-Xint、-Xcomp、-Xmixed參數
* -Xint:在解釋模式(interpreted mode)下,-Xint標記會強制JVM執行所有的字節碼,當然這會降低運行速度,通常低10倍或更多。* -Xcomp編譯模式:-Xcomp參數與它(-Xint)正好相反,JVM在第一次使用時會把所有的字節碼編譯成本地代碼,從而帶來最大程度的優化。* 然而,很多應用在使用-Xcomp也會有一些性能損失,當然這比使用-Xint損失的少,原因是-xcomp沒有讓JVM啟用JIT編譯器的全部功能。JIT編譯器可以對是否需要編譯做判斷,如果所有代碼都進行編譯的話,對于一些只執行一次的代碼就沒有意義了。* -Xmixed是混合模式,將解釋模式與編譯模式進行混合使用,由jvm自己決定,這是jvm默認的模式,也是推薦使用的模式。

示例:強制設置運行模式

# 強制設置為解釋模式 編譯快,運行慢[root@localhost test]# java -showversion -Xint TestJVMjava version "1.8.0_211"Java(TM) SE Runtime Environment (build 1.8.0_211-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, interpreted mode)wanyuan# 強制設置為編譯模式 [root@localhost test]# java -showversion -Xcomp TestJVMjava version "1.8.0_211"Java(TM) SE Runtime Environment (build 1.8.0_211-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, compiled mode)wanyuan# 注意:編譯模式下,第一次執行速度會比解釋模式下執行速度慢一些,需要注意觀察。# 默認的混合模式[root@localhost test]# java -showversion TestJVMjava version "1.8.0_211"Java(TM) SE Runtime Environment (build 1.8.0_211-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)wanyuan

-XX參數

-XX參數也是非標準參數,主要用于jvm的調優和debug操作。

-XX參數的使用有2種方式,一種是boolean類型,一種是非boolean類型:* boolean類型* 格式:-XX:[+-]<name>表示啟用或者禁用<name>屬性* 如:-XX:+DisableExplicitGC 表示禁用手動調用gc操作,也就是說調用System.gc()無效*boolean類型* 格式:-XX:<name>=<value>表示<name>屬性的值為<value>* 如:-XX:NewRatio=1 表示新生代和老年代的比值

測試:

[root@localhost test]# java -showversion -XX:+DisableExplicitGC TestJVM java version "1.8.0_211" Java(TM) SE Runtime Environment (build 1.8.0_211-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)wanyuan

-Xms與-Xmx參數

  • -Xms與-Xmx分別是設置jvm的堆內存的初始大小和最大大小。
  • -Xmx2048m:等價于-XX:MaxHeapSize,設置JVM最大堆內存為2048M。
  • -Xms512m:等價于-XX:InitialHeapSize,設置JVM初始堆內存為512M。
  • 適當的調整jvm的內存大小,可以充分利用服務器資源,讓程序跑的更快。
[root@localhost test]# java -Xms512m -Xmx2048m TestJVM wanyuan

查看jvm的運行參數

有些時候需要查看jvm的運行參數,這個需求可能存在兩種情況

  • 運行java命令時打印出運行參數
  • 查看正在運行的java進程的參數

運行java命令時打印出運行參數

java -XX:+PrintFlagsInitial -version這個命令的值很多,保存到文件中-XX:+PrintFlagsInitial -version > flag.txt

如:

[root@localhost test]# java -XX:+PrintFlagsInitial -version #把他輸出到一個文件 [root@localhost test]# java -XX:+PrintFlagsInitial -version > flags.txt

參數太多了,通過查看可以看出,參數有boolean類型和數字類型,值的操作是(= 默認值)或者(:= 被修改的值)

查看正在運行的java進程的參數

想要查看正在運行的jvm就需要借助jinfo命令查看

首先啟動tomcat用于測試,觀察下運行的jvm參數

rz # 上傳 tar -xvf apache-tomcat-7.0.57.tar.gz # 解壓 cd apache-tomcat-7.0.57 cd bin/ ./startup.sh # 啟動tomcat

jinfo命令

# 查看所有的參數,用法:jinfo -flags <進程id># 通過jps 或者jps -l 查看java進程id [root@localhost bin]# jps 6346 Jps 6219 Bootstrap [root@localhost bin]# jps -l 6346 sun.tools.jps.Jps 6219 org.apache.catalina.startup.Bootstrap[root@localhost bin]# jinfo -flags 6219 Attaching to process ID 6219, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.211-b12 Non-default VM flags: -XX:CICompilerCount=2 -XX:InitialHeapSize=31457280 -XX:MaxHeapSize=488636416 -XX:MaxNewSize=162529280 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=1572864 -XX:OldSize=29884416 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC # 查看某一個參數的值,用法:jinfo -flag <參數名> <進程id> [root@localhost bin]# jinfo -flag MaxHeapSize 6219 -XX:MaxHeapSize=488636416

總結

以上是生活随笔為你收集整理的【JVM调优】JVM的运行参数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本 奴役 捆绑 受虐狂xxxx | 国产精品国产三级国产传播 | 国产午夜精品一区二区三区四区 | 欧美毛片视频 | 日本在线一 | 国产免费91视频 | 娇妻被肉到高潮流白浆 | 国产日韩久久 | 中文字幕在线观看高清 | 国产在线视频99 | 日日操夜夜操视频 | 91在线视频免费 | 国产日韩久久久 | 黄色大全免费看 | 91精品国产色综合久久不卡电影 | 日韩中文字幕在线 | 浪浪视频在线观看 | 国产精品果冻传媒 | 精品三级在线 | 欧美高清hd19| 欧美成人高清视频 | 色偷偷中文字幕 | 亚洲综合精品国产 | 欧美成人区 | 韩国理论午夜 | 成人字幕 | 粗大黑人巨茎大战欧美成人免费看 | 亚洲日本护士毛茸茸 | 国产精品欧美久久久久天天影视 | 亚洲最大av | 大尺度一区二区 | 91成人福利视频 | 久久成人免费视频 | 久久精品黄aa片一区二区三区 | 操亚洲美女 | 久久涩涩 | 性生活毛片 | 精品一区二区免费看 | 免费人成视频在线播放 | 风流老熟女一区二区三区 | 亚洲黄色在线 | 色屁屁一区二区 | 一区二区三区国产 | av中出| 亚洲成人av电影网站 | 成人一级网站 | 亚洲av无码一区二区二三区 | 揉我啊嗯~喷水了h视频 | 人人干干 | 善良的公与媳hd中文字 | 97热视频| 天天爽天天色 | 91精品久久香蕉国产线看观看 | 九九色网| 91久久精品国产91久久 | 成人性做爰片免费视频 | xiuxiuavnet| 久久人人爽人人 | av在线操| 少妇高潮一区二区三区喷水 | 欧美丰满熟妇bbbbbb百度 | 国产美女一区二区 | 亚洲国产精彩视频 | 91免费国产 | 国产拍拍拍| 国产一区视频在线观看免费 | 国产这里只有精品 | 亚洲在线视频网站 | 99热综合 | 国产视频福利 | 亚洲精品无码久久久久久久 | 国产露脸150部国语对白 | 一本久久久久 | 欧美天天性 | 国产免费视频 | 中文字幕日本在线 | 新呦u视频一区二区 | 在线观看成年人网站 | 理论视频在线观看 | 91女人18毛片水多国产 | 少妇25p | 国产色视频一区二区三区qq号 | 男女互操在线观看 | 天天做天天摸天天爽天天爱 | 人人插人人射 | 日韩精品电影一区 | 国产熟女一区二区三区四区 | 国产美女作爱全过程免费视频 | 天天做日日干 | 超碰精品在线观看 | 国产精品三级 | 日日操夜夜操狠狠操 | av高清在线免费观看 | 操色网| 天天鲁一鲁摸一摸爽一爽 | 五月天丁香视频 | 欧洲高潮三级做爰 | 欧美在线免费播放 | 日本美女交配 |