更新時間:2020-10-09 17:22:09 來源:動力節點 瀏覽1408次
參數在Java方法調用中起到了至關重要的作用,因此,JVM參數設置是我們學習JVM不容忽視的重點內容。下面為大家介紹一些常見的11種JVM參數設置。
-server
啟用能夠執行優化的編譯器, 顯著提高服務器的性能,但使用能夠執行優化的編譯器時,服務器的預備時間將會較長。生產環境的服務器強烈推薦設置此參數。
-Xss
單個線程堆棧大小值;JDK5.0 以后每個線程堆棧大小為1M,以前每個線程堆棧大小為256K。在相同物理內存下,減小這個值能生成更多的線程。但是操作系統對一個進程內的線程數還是有限制的,不能無限生成,經驗值在3000~5000左右。
-XX:+UseParNewGC
可用來設置年輕代為并發收集【多CPU】,如果你的服務器有多個CPU,你可以開啟此參數;開啟此參數,多個CPU 可并發進行垃圾回收,可提高垃圾回收的速度。此參數和+UseParallelGC,-XX:ParallelGCThreads搭配使用。
+UseParallelGC 選擇垃圾收集器為并行收集器。此配置僅對年輕代有效。即上述配置下,年輕代使用并發收集,而年老代仍舊使用串行收集。可提高系統的吞吐量。
-XX:ParallelGCThreads
年輕代并行垃圾收集的前提下(對并發也有效果)的線程數,增加并行度,即:同時多少個線程一起進行垃圾回收。此值最好配置與處理器數目相等。永久存儲區相關參數:參數名參數說明
-Xnoclassgc
每次永久存儲區滿了后一般GC 算法在做擴展分配內存前都會觸發一次FULL GC,除非設置了-Xnoclassgc。
-XX:PermSize
應用服務器啟動時,永久存儲區的初始內存大。
-XX:MaxPermSize
應用運行中,永久存儲區的極限值。為了不消耗擴大JVM 永久存儲區分配的開銷,將此參數和-XX:PermSize這個兩個值設為相等。堆空間相關參數參數名參數說明。
-Xms
啟動應用時,JVM 堆空間的初始大小值。
-Xmx
應用運行中,JVM 堆空間的極限值。為了不消耗擴大JVM 堆控件分配的開銷,將此參數和-Xms 這個兩個值設為相等,考慮到需要開線程,講此值設置為總內存的80%。
-Xmn
此參數硬性規定堆空間的新生代空間大小,推薦設為堆空間大小的1/4。
上面所列的JVM 參數關系到系統的性能,而其中-XX:PermSize,-XX:MaxPermSize,-Xms,-Xmx 和-Xmn 這5 個參數更是直接關系到系統的性能,系統是否會出現內存溢出。
-XX:PermSize 和-XX:MaxPermSize 分別設置應用服務器啟動時,永久存儲區的初始大小和極限大小;在生成環境中強烈推薦將這個兩個值設置為相同的值,以避免分配永久存儲區的開銷,具體的值可取系統“疲勞測試”獲取到的永久存儲區的極限值;如果不進行設置-XX:MaxPermSize 默認值為64M,一般來說系統的類定義文件大小都會超過這個默認值。
-Xms 和-Xmx 分別是服務器啟動時,堆空間的初始大小和極限值。-Xms的默認值是物理內存的1/64 但小于1G,-Xmx 的默認值是物理內存的1/4 但小于1G.在生產環境中這些默認值是肯定不能滿足我們的需要的。也就是你的服務器有8g 的內存,不對JVM 參數進行設置優化,應用服務器啟動時還是按默認值來分配和約束JVM 對內存資源的使用,不會充分的利用所有的內存資源。
我們可以通過調整這些JVM參數設置,來改變JVM中的一些數據和設置。所以,學會設置JVM 參數對于學習JVM來說刻不容緩,想要快速上手的小伙伴可以觀看本站的Java零基礎教程,即使零基礎也能學好Java!
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習