java虛擬機(jī)參數(shù)-D、-X和-XX的區(qū)別小結(jié)
最近在學(xué)習(xí)jvm調(diào)優(yōu)相關(guān)的內(nèi)容, 一直有一個(gè)疑問(wèn),為什么有些參數(shù)是以-X開頭的,有些是以-XX開頭的,還有-D開頭的?
通過(guò)查詢資料、總結(jié)如下
-XX
說(shuō)明:
標(biāo)準(zhǔn)選擇(Standard Options)
這些是 JVM 的所有實(shí)現(xiàn)都支持的最常用的選項(xiàng)。
These are the most commonly used options that are supported by all implementations of the JVM.
示例:
例如以-XX開頭的配置參數(shù)
-XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnable -XX:+UseFastAccessorMethods
-X
說(shuō)明:
非標(biāo)準(zhǔn)選擇(Non-Standard Options)
這些選項(xiàng)是特定于 Java HotSpot 虛擬機(jī)的通用選項(xiàng)。
These options are general purpose options that are specific to the Java HotSpot Virtual Machine.
示例:
例如以-X開頭的配置參數(shù)
-Xmx256m -Xms256m -Xmn768m -Xss256k
-D
說(shuō)明:
設(shè)置系統(tǒng)屬性值;
-D屬性名稱=屬性值
Sets a system property value. The property variable is a string with no spaces that represents the name of the property. The value variable is a string that represents the value of the property. If value is a string with spaces, then enclose it in quotation marks (for example -Dfoo=“foo bar”).
示例:
例如以-D開頭的配置參數(shù)
-Dspring.profiles.active=release -Dspring.config.location=/opt/app/conf/
如果 屬性值 是一個(gè)帶有空格的字符串,那么用引號(hào)將其括起來(lái)
例如 -Dfoo = “ foo bar”
如果想進(jìn)一步了解參數(shù)的詳細(xì)信息,可以查閱Oracle官網(wǎng)
Oracle官網(wǎng)關(guān)于參數(shù)的說(shuō)明
常用JVM參數(shù)
1.-Xms:初始堆大小。只要啟動(dòng),就占用的堆大小。
2.-Xmx:最大堆大小。java.lang.OutOfMemoryError:Java heap這個(gè)錯(cuò)誤可以通過(guò)配置-Xms和-Xmx參數(shù)來(lái)設(shè)置。
3.-Xss:棧大小分配。棧是每個(gè)線程私有的區(qū)域,通常只有幾百K大小,決定了函數(shù)調(diào)用的深度,而局部變量、參數(shù)都分配到棧上。
當(dāng)出現(xiàn)大量局部變量,遞歸時(shí),會(huì)發(fā)生??臻gOOM(java.lang.StackOverflowError)之類的錯(cuò)誤。
4.XX:NewSize:設(shè)置新生代大小的絕對(duì)值。
5.-XX:NewRatio:設(shè)置年輕代和年老代的比值。比如設(shè)置為3,則新生代:老年代=1:3,新生代占總heap的1/4。
6.-XX:MaxPermSize:設(shè)置持久代大小。
java.lang.OutOfMemoryError:PermGenspace這個(gè)OOM錯(cuò)誤需要合理調(diào)大PermSize和MaxPermSize大小。
7.-XX:SurvivorRatio:年輕代中Eden區(qū)與兩個(gè)Survivor區(qū)的比值。注意,Survivor區(qū)有form和to兩個(gè)。比如設(shè)置為8時(shí),那么eden:form:to=8:1:1。
8.-XX:HeapDumpOnOutOfMemoryError:發(fā)生OOM時(shí)轉(zhuǎn)儲(chǔ)堆到文件,這是一個(gè)非常好的診斷方法。
9.-XX:HeapDumpPath:導(dǎo)出堆的轉(zhuǎn)儲(chǔ)文件路徑。
10.-XX:OnOutOfMemoryError:OOM時(shí),執(zhí)行一個(gè)腳本,比如發(fā)送郵件報(bào)警,重啟程序。后面跟著一個(gè)腳本的路徑。
到此這篇關(guān)于java虛擬機(jī)參數(shù)-D、-X和-XX的區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)java -D -X和-XX內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
maven項(xiàng)目打包上傳到私有倉(cāng)庫(kù)
在項(xiàng)目開發(fā)中通常會(huì)引用其他的jar,怎樣把自己的項(xiàng)目做為一個(gè)jar包的形式發(fā)布到私服倉(cāng)庫(kù)中,本文就詳細(xì)的介紹一下,感興趣的可以了解一下2021-06-06安裝elasticsearch-analysis-ik中文分詞器的步驟講解
今天小編就為大家分享一篇關(guān)于安裝elasticsearch-analysis-ik中文分詞器的步驟講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02Java?設(shè)計(jì)模式以虹貓藍(lán)兔的故事講解簡(jiǎn)單工廠模式
簡(jiǎn)單工廠模式是屬于創(chuàng)建型模式,又叫做靜態(tài)工廠方法(Static Factory Method)模式,但不屬于23種GOF設(shè)計(jì)模式之一。簡(jiǎn)單工廠模式是由一個(gè)工廠對(duì)象決定創(chuàng)建出哪一種產(chǎn)品類的實(shí)例。簡(jiǎn)單工廠模式是工廠模式家族中最簡(jiǎn)單實(shí)用的模式,可以理解為是不同工廠模式的一個(gè)特殊實(shí)現(xiàn)2022-03-03

詳解Java如何使用責(zé)任鏈默認(rèn)優(yōu)雅地進(jìn)行參數(shù)校驗(yàn)