中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jvm的啟動參數分為幾類

發布時間:2021-09-13 11:58:07 來源:億速云 閱讀:123 作者:chen 欄目:編程語言

本篇內容主要講解“jvm的啟動參數分為幾類”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“jvm的啟動參數分為幾類”吧!

java啟動參數共分為三類;
其一是標準參數(-),所有的JVM實現都必須實現這些參數的功能,而且向后兼容;
其二是非標準參數(-X),默認jvm實現這些參數的功能,但是并不保證所有jvm實現都滿足,且不保證向后兼容;
其三是非Stable參數(-XX),此類參數各個jvm實現會有所不同,將來可能會隨時取消,需要慎重使用;

標準參數中比較有用的:

verbose 
-verbose:class
 
 輸出jvm載入類的相關信息,當jvm報告說找不到類或者類沖突時可此進行診斷。
-verbose:gc 
 輸出每次GC的相關情況。
-verbose:jni 
 輸出native方法調用的相關情況,一般用于診斷jni調用錯誤信息。

非標準參數又稱為擴展參數

一般用到最多的是

-Xms512m  設置JVM促使內存為512m。此值可以設置與-Xmx相同,以避免每次垃圾回收完成后JVM重新分配內存。

-Xmx512m ,設置JVM最大可用內存為512M。

-Xmn200m設置年輕代大小為200M。整個堆大小=年輕代大小 + 年老代大小 + 持久代大小。持久代一般固定大小為64m,所以增大年輕代后,將會減小年老代大小。此值對系統性能影響較大,Sun官方推薦配置為整個堆的3/8。

-Xss128k:

設置每個線程的堆棧大小。JDK5.0以后每個線程堆棧大小為1M,以前每個線程堆棧大小為256K。更具應用的線程所需內存大小進行調整。在相同物理內存下,減小這個值能生成更多的線程。但是操作系統對一個進程內的線程數還是有限制的,不能無限生成,經驗值在3000~5000左右。

-Xloggc:file
 與-verbose:gc功能類似,只是將每次GC事件的相關情況記錄到一個文件中,文件的位置最好在本地,以避免網絡的潛在問題。
 若與verbose命令同時出現在命令行中,則以-Xloggc為準。
-Xprof

 跟蹤正運行的程序,并將跟蹤數據在標準輸出輸出;適合于開發環境調試。

用-XX作為前綴的參數列表在jvm中可能是不健壯的,SUN也不推薦使用,后續可能會在沒有通知的情況下就直接取消了;但是由于這些參數中的確有很多是對我們很有用的,比如我們經常會見到的-XX:PermSize、-XX:MaxPermSize等等;

首先來介紹行為參數

參數及其默認值描述
-XX:-DisableExplicitGC禁止調用System.gc();但jvm的gc仍然有效
-XX:+MaxFDLimit最大化文件描述符的數量限制
-XX:+ScavengeBeforeFullGC新生代GC優先于Full GC執行
-XX:+UseGCOverheadLimit在拋出OOM之前限制jvm耗費在GC上的時間比例
-XX:-UseConcMarkSweepGC對老生代采用并發標記交換算法進行GC
-XX:-UseParallelGC啟用并行GC
-XX:-UseParallelOldGC對Full GC啟用并行,當-XX:-UseParallelGC啟用時該項自動啟用
-XX:-UseSerialGC啟用串行GC
-XX:+UseThreadPriorities啟用本地線程優先級

上面表格中黑體的三個參數代表著jvm中GC執行的三種方式,即串行、并行、并發
串行(SerialGC)是jvm的默認GC方式,一般適用于小型應用和單處理器,算法比較簡單,GC效率也較高,但可能會給應用帶來停頓;
并行(ParallelGC)是指GC運行時,對應用程序運行沒有影響,GC和app兩者的線程在并發執行,這樣可以最大限度不影響app的運行;
并發(ConcMarkSweepGC)是指多個線程并發執行GC,一般適用于多處理器系統中,可以提高GC的效率,但算法復雜,系統消耗較大;

性能調優參數列表:

參數及其默認值描述
-XX:LargePageSizeInBytes=4m設置用于Java堆的大頁面尺寸
-XX:MaxHeapFreeRatio=70GC后java堆中空閑量占的最大比例
-XX:MaxNewSize=size新生成對象能占用內存的最大值
-XX:MaxPermSize=64m老生代對象能占用內存的最大值
-XX:MinHeapFreeRatio=40GC后java堆中空閑量占的最小比例
-XX:NewRatio=2新生代內存容量與老生代內存容量的比例
-XX:NewSize=2.125m新生代對象生成時占用內存的默認值
-XX:ReservedCodeCacheSize=32m保留代碼占用的內存容量
-XX:ThreadStackSize=512設置線程棧大小,若為0則使用系統默認值
-XX:+UseLargePages使用大頁面內存

 我們在日常性能調優中基本上都會用到以上黑體的這幾個屬性

調試參數列表:

參數及其默認值描述
-XX:-CITime打印消耗在JIT編譯的時間
-XX:ErrorFile=./hs_err_pid<pid>.log保存錯誤日志或者數據到文件中
-XX:-ExtendedDTraceProbes開啟solaris特有的dtrace探針
-XX:HeapDumpPath=./java_pid<pid>.hprof指定導出堆信息時的路徑或文件名
-XX:-HeapDumpOnOutOfMemoryError當首次遭遇OOM時導出此時堆中相關信息
-XX:OnError="<cmd args>;<cmd args>"出現致命ERROR之后運行自定義命令
-XX:OnOutOfMemoryError="<cmd args>;<cmd args>"當首次遭遇OOM時執行自定義命令
-XX:-PrintClassHistogram遇到Ctrl-Break后打印類實例的柱狀信息,與jmap -histo功能相同
-XX:-PrintConcurrentLocks遇到Ctrl-Break后打印并發鎖的相關信息,與jstack -l功能相同
-XX:-PrintCommandLineFlags打印在命令行中出現過的標記
-XX:-PrintCompilation當一個方法被編譯時打印相關信息
-XX:-PrintGC每次GC時打印相關信息
-XX:-PrintGC Details每次GC時打印詳細信息
-XX:-PrintGCTimeStamps打印每次GC的時間戳
-XX:-TraceClassLoading跟蹤類的加載信息
-XX:-TraceClassLoadingPreorder跟蹤被引用到的所有類的加載信息
-XX:-TraceClassResolution跟蹤常量池
-XX:-TraceClassUnloading跟蹤類的卸載信息
-XX:-TraceLoaderConstraints跟蹤類加載器約束的相關信息

到此,相信大家對“jvm的啟動參數分為幾類”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

jvm
AI

清苑县| 霍山县| 旌德县| 砀山县| 冷水江市| 厦门市| 义乌市| 称多县| 宣恩县| 文安县| 怀化市| 哈密市| 葫芦岛市| 鄂州市| 册亨县| 皋兰县| 洪江市| 惠东县| 南丰县| 洪湖市| 乐清市| 建昌县| 台南县| 微博| 仁布县| 清涧县| 光泽县| 新河县| 西吉县| 华安县| 柏乡县| 九龙坡区| 衡南县| 金华市| 波密县| 通许县| 观塘区| 荥阳市| 大渡口区| 五峰| 京山县|