最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入理解jvm啟動參數(shù)

 更新時間:2023年08月23日 10:21:37   作者:一戶董  
JVM的啟動參數(shù)是在啟動JVM時可以設置的一些命令行參數(shù),本文詳細的介紹了深入理解jvm啟動參數(shù),具有一定的參考價值,感興趣的可以了解一下

寫在前面

本文一起看下jvm啟動參數(shù)相關內(nèi)容,通過本文希望我自己也希望大家能夠真正的應用到實際的工作中。

1:基本內(nèi)容介紹

一般我們啟動java程序有兩種方式,一種是直接運行一個有main函數(shù)的class,第二種是運行一個在MANIFEST文件中指定了main類的jar包,格式分別如下:

class文件格式:
    java [options] classname [args]
jar包格式:
    java [options] jarfilename [args]

其中[options]就是我們本文要分析的jvm的參數(shù)配置,[args]是main函數(shù)的參數(shù)即main(String[] arags)中的args

參數(shù)具體可以分為標準參數(shù),非標準參數(shù),系統(tǒng)屬性參數(shù)等,分別來看下。

標準參數(shù)
標準參數(shù)是以-開頭的參數(shù),這種參數(shù)是所有的JVM都會實現(xiàn)和支持的,并且會一直兼容,如-server 設置jvm的運行模式。

系統(tǒng)屬性參數(shù)
系統(tǒng)屬性參數(shù)通過-D設置,如-Dfile.encoding=UTF-8,設置編碼。

非標準參數(shù)
非標準參數(shù)通過 -X 設置,這種參數(shù)并不保證所有JVM的都支持,并且不保證向后兼容,如 -Xms2g -Xmx4g,可以通過java -X查看當前jvm支持非標準參數(shù)都有哪些,如下:

bogon:~ xb$ java -version
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)
bogon:~ xb$ java -X
    -Xbatch           禁用后臺編譯
    -Xbootclasspath/a:<directories and zip/jar files separated by :>
                      附加在引導類路徑末尾
    -Xcheck:jni       對 JNI 函數(shù)執(zhí)行其他檢查
    -Xcomp            在首次調(diào)用時強制編譯方法
    -Xdebug           為實現(xiàn)向后兼容而提供
    -Xdiag            顯示附加診斷消息
    -Xfuture          啟用最嚴格的檢查, 預期將來的默認值
    -Xint             僅解釋模式執(zhí)行
    -Xinternalversion
                      顯示比 -version 選項更詳細的 JVM
                      版本信息
...

非穩(wěn)定參數(shù)

非穩(wěn)定參數(shù)通過 -XX: 開頭,其和具體的jvm有關,且隨時可能隨時在下一個版本中刪除,具體使用在如下兩種形式其中一種,如下:

-XX:+-flag
    打開某布爾的開關,如-XX:+UseG1GC設置使用G1 GC。
-XX:key=value
    通過kv的形式設置值,如-XX:MaxPermSize=256m,設置方法區(qū)大小為256m

2:參數(shù)分類

按照參數(shù)設置的內(nèi)容可以分為如下6類,分別看下。

2.1:系統(tǒng)屬性參數(shù)

系統(tǒng)屬性參數(shù)首先我們可以在操作系統(tǒng)級別設置,如果是windows則是在如下界面設置:

如果是Linux則可以在 /etc/profile 等文件中配置,但是這種方式配置的是全局的,對所有的進程生效,另外一種就是通過 -D:k=v 設置進程的屬性,如 -Dmaven.test.skip.true , -Dfile.encoding=UTF-8 ,當然也可以通過System.setProperty來設置,如下測試:

2.2:內(nèi)存大小參數(shù)

為了方便對應到具體的內(nèi)存區(qū)域,我們先來看下jvm的內(nèi)存結構,如下圖:

先看下主要參數(shù):

-Xms
    設置堆內(nèi)存的初始大小,即最小內(nèi)存
-Xmx
    設置堆的最大大小,一般-Xms和-Xmx設置為一樣,這樣可以避免堆內(nèi)存擴容帶來的性能抖動
-Xms   
    設置堆的young區(qū)的大小
-XX:MaxDirectMemorySize=size
    設置可以使用的最大堆外內(nèi)存,即操作系統(tǒng)的內(nèi)存,效果同-Dsun.nio.MaxDirectoryMemorySize=size
-Xss
    設置線程棧的大小,影響棧的深度,如-Xss1m,即設置線程棧的大小為1M,效果同-XX:ThreadStackSize=size

這些參數(shù)和jvm內(nèi)存結構關系如下圖:

2.3:GC相關參數(shù)

主要是設置使用何種類型的垃圾收集器,如下:

-XX:+UseG1GC 使用G1垃圾收集器
-XX:+UseConcMarkSweepGC 使用CMS垃圾收集器
-XX:+UseSerialGC 使用串行垃圾收集器
-XX:+UseParallelGC 使用并行垃圾收集器

2.4:分析診斷相關相關參數(shù)

-XX:+HeapDumpOnOutOfMemoryError 當發(fā)生OutOfMemoryError時,自動dump堆內(nèi)存
    如,java -XX:+HeapDumpOnOutOfMemoryError -Xmx256m SomeJavaFile
-XX:+HeapDumpPath 與-XX:HeapDumpOnOutOfMemoryError 配合使用,設置發(fā)生了OOM后生成dump文件路徑,如果是沒有指定則默認為啟動java程序的工作目錄
    如,java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local -Xmx256m SomeJavaFile
-XX:OnOutOfMemoryError 拋出OutOfMemoryError錯誤時執(zhí)行的腳本
-XX:ErrorFile=filename 致命錯誤的日志文件名稱,絕對路徑或者相對路徑

2.5:javaagent

TODO 學習后補充?。。?/p>

到此這篇關于深入理解jvm啟動參數(shù)的文章就介紹到這了,更多相關jvm啟動參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • springboot layui hutool Excel導入的實現(xiàn)

    springboot layui hutool Excel導入的實現(xiàn)

    本文主要介紹了springboot layui hutool Excel導入的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-03-03
  • spring配置不掃描service層的原因解答

    spring配置不掃描service層的原因解答

    這篇文章主要介紹了spring配置不掃描service層的原因解答,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java并發(fā) 線程間的等待與通知

    Java并發(fā) 線程間的等待與通知

    這篇文章主要介紹了Java并發(fā) 線程間的等待與通知,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • Java實現(xiàn)HTML轉為Word的示例代碼

    Java實現(xiàn)HTML轉為Word的示例代碼

    本文以Java代碼為例為大家詳細介紹如何實現(xiàn)將HTML文件轉為Word文檔(.docx、.doc)。在實際開發(fā)場景中可參考此方法來轉換,感興趣的可以了解一下
    2022-06-06
  • 基于SpringBoot+vue實現(xiàn)前后端數(shù)據(jù)加解密

    基于SpringBoot+vue實現(xiàn)前后端數(shù)據(jù)加解密

    這篇文章主要給大家介紹了基于SpringBoot+vue實現(xiàn)前后端數(shù)據(jù)加解密,文中有詳細的示例代碼,具有一定的參考價值,感興趣的小伙伴可以自己動手試一試
    2023-08-08
  • Spring源碼如何修改Bean的屬性用到的相關類

    Spring源碼如何修改Bean的屬性用到的相關類

    這篇文章主要介紹了Spring源碼如何修改Bean的屬性用到的相關類,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java?super關鍵字的使用詳解

    Java?super關鍵字的使用詳解

    java中的super關鍵字是一個引用變量,用于引用直接父類對象,下面這篇文章主要給大家介紹一下super關鍵字的使用,需要的朋友可以參考下
    2022-07-07
  • java通過MySQL驅動攔截器實現(xiàn)執(zhí)行sql耗時計算

    java通過MySQL驅動攔截器實現(xiàn)執(zhí)行sql耗時計算

    本文主要介紹了java通過MySQL驅動攔截器實現(xiàn)執(zhí)行sql耗時計算,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Java雇員管理小項目

    Java雇員管理小項目

    這篇文章主要為大家詳細介紹了Java雇員管理小項目,理解面向對象編程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Java SPI機制原理及代碼實例

    Java SPI機制原理及代碼實例

    這篇文章主要介紹了Java SPI機制原理及代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06

最新評論

信宜市| 晋宁县| 桑植县| 伊宁县| 鄂托克前旗| 千阳县| 内江市| 遂川县| 政和县| 杭锦旗| 镇宁| 静安区| 延吉市| 连南| 文安县| 安图县| 嵩明县| 新昌县| 且末县| 安丘市| 隆化县| 武鸣县| 崇阳县| 茌平县| 福州市| 榕江县| 大洼县| 普宁市| 同江市| 蓬溪县| 英吉沙县| 许昌市| 宣武区| 广丰县| 台东市| 垫江县| 木兰县| 通山县| 德保县| 广南县| 边坝县|