JVM 垃圾回收器參數(shù)的配置過程,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都一家集口碑和實力的網(wǎng)站建設(shè)服務(wù)商,擁有專業(yè)的企業(yè)建站團隊和靠譜的建站技術(shù),10多年企業(yè)及個人網(wǎng)站建設(shè)經(jīng)驗 ,為成都1000+客戶提供網(wǎng)頁設(shè)計制作,網(wǎng)站開發(fā),企業(yè)網(wǎng)站制作建設(shè)等服務(wù),包括成都營銷型網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,同時也為不同行業(yè)的客戶提供網(wǎng)站制作、成都網(wǎng)站設(shè)計的服務(wù),包括成都電商型網(wǎng)站制作建設(shè),裝修行業(yè)網(wǎng)站制作建設(shè),傳統(tǒng)機械行業(yè)網(wǎng)站建設(shè),傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設(shè)。在成都做網(wǎng)站,選網(wǎng)站制作建設(shè)服務(wù)商就選創(chuàng)新互聯(lián)建站。
一說到 JVM 很多人都認為是很高深的東西。但其實并沒有什么神秘莫測,我們只需記住它的一些參數(shù)和配置手冊即可。本文將詳細介紹 JVM 的一些參數(shù)用法。
UseSerialGC:開啟此參數(shù)使用serial & serial old搜集器(client模式默認值)。
UseParNewGC:開啟此參數(shù)使用ParNew & serial old搜集器(不推薦)。
UseConcMarkSweepGC:開啟此參數(shù)使用ParNew & CMS(serial old為替補)搜集器。
UseParallelGC:開啟此參數(shù)使用parallel scavenge & parallel old搜集器(server模式默認值)。
UseParallelOldGC:開啟此參數(shù)在年老代使用parallel old搜集器(該參數(shù)在JDK1.5之后已無用)。
JVM各個內(nèi)存區(qū)域大小相關(guān)參數(shù)
Xms:堆的初始值。默認為物理內(nèi)存的1/64,最大不超1G。
Xmx:堆的最大值。默認為物理內(nèi)存的1/4,最大不超1G。
Xmn:新生代的大小。
Xss:線程棧大小。
PermSize:永久代初始大小。默認為物理內(nèi)存的1/64,最大不超1G。
MaxPermSize:永久代最大值。默認為物理內(nèi)存的1/4,最大不超1G。
NewRatio:新生代與年老代的比例。比如為3,則新生代占堆的1/4,年老代占3/4。
SurvivorRatio:新生代中調(diào)整eden區(qū)與survivor區(qū)的比例,默認為8,即eden區(qū)為80%的大小,兩個survivor分別為10%的大小。(備注:這個參數(shù)設(shè)定是講解復(fù)制算法那一章中,解決復(fù)制算法內(nèi)存減半的辦法。eden區(qū)即是復(fù)制算法一章中80%的那部分,而survivor區(qū)則是兩個10%的那部分。)
垃圾搜集器性能通用參數(shù)
PretenureSizeThreshold:晉升年老代的對象大小。默認為0,比如設(shè)為10M,則超過10M的對象將不在eden區(qū)分配,而直接進入年老代。
MaxTenuringThreshold:晉升老年代的最大年齡。默認為15,比如設(shè)為10,則對象在10次普通GC后將會被放入年老代。
DisableExplicitGC:禁用System.gc()。
并行搜集器參數(shù)
ParallelGCThreads:回收時開啟的線程數(shù)。默認與CPU個數(shù)相等。
GCTimeRatio:設(shè)置系統(tǒng)的吞吐量。比如設(shè)為99,則GC時間比為1/1+99=1%,也就是要求吞吐量為99%。若無法滿足會縮小新生代大小。
MaxGCPauseMillis:設(shè)置垃圾回收的最大停頓時間。若無法滿足設(shè)置值,則會優(yōu)先縮小新生代大小,仍無法滿足的話則會犧牲吞吐量。
并發(fā)搜集器參數(shù)
CMSInitiatingOccupancyFraction:觸發(fā)CMS收集器的內(nèi)存比例。比如60%的意思就是說,當內(nèi)存達到60%,就會開始進行CMS并發(fā)收集。
UseCMSCompactAtFullCollection:這個前面已經(jīng)提過,用于在每一次CMS收集器清理垃圾后送一次內(nèi)存整理。
CMSFullGCsBeforeCompaction:設(shè)置在幾次CMS垃圾收集后,觸發(fā)一次內(nèi)存整理。
看完上述內(nèi)容,你們掌握JVM 垃圾回收器參數(shù)的配置過程的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!