-Xint
设置jvm以解é模å¼è¿è¡ï¼ææçåèç å°è¢«ç´æ¥æ§è¡ï¼èä¸ä¼ç¼è¯ææ¬å°ç ã
-Xbatch
å
³éåå°ä»£ç ç¼è¯ï¼å¼ºå¶å¨åå°ç¼è¯ï¼ç¼è¯å®æä¹åæè½è¿è¡ä»£ç æ§è¡ï¼
é»è®¤æ
åµä¸ï¼jvmå¨åå°è¿è¡ç¼è¯ï¼è¥æ²¡æç¼è¯å®æï¼ååå°è¿è¡ä»£ç æ¶ä»¥è§£é模å¼è¿è¡ã
-Xbootclasspath:bootclasspath
让jvmä»æå®è·¯å¾ï¼å¯ä»¥æ¯åå·åéçç®å½ãjarãæè
zipï¼ä¸å è½½bootclassï¼ç¨æ¥æ¿æ¢jdkçrt.jarï¼è¥éå¿
è¦ï¼ä¸è¬ä¸ä¼ç¨å°ï¼
-Xbootclasspath/a:path
å°æå®è·¯å¾çæææ件追å å°é»è®¤bootstrapè·¯å¾ä¸ï¼
-Xbootclasspath/p:path
让jvmä¼å
äºbootstrapé»è®¤è·¯å¾å è½½æå®è·¯å¾çæææ件ï¼
-Xcheck:jni
对JNIå½æ°è¿è¡éå checkï¼æ¤æ¶jvmå°æ ¡éªä¼ éç»JNIå½æ°åæ°çåæ³æ§ï¼å¨æ¬å°ä»£ç ä¸éå°éæ³æ°æ®æ¶ï¼jmvå°æ¥ä¸ä¸ªè´å½é误èç»æ¢ï¼ä½¿ç¨è¯¥åæ°åå°é ææ§è½ä¸éï¼è¯·æ
ç¨ã
-Xfuture
让jvm对类æ件æ§è¡ä¸¥æ ¼çæ ¼å¼æ£æ¥ï¼é»è®¤jvmä¸è¿è¡ä¸¥æ ¼æ ¼å¼æ£æ¥ï¼ï¼ä»¥ç¬¦åç±»æä»¶æ ¼å¼è§èï¼æ¨èå¼å人å使ç¨è¯¥åæ°ã
-Xnoclassgc
å
³éé对classçgcåè½ï¼å 为å
¶é»æ¢å
ååæ¶ï¼æ以å¯è½ä¼å¯¼è´OutOfMemoryErroré误ï¼æ
ç¨ï¼
-Xincgc
å¼å¯å¢égcï¼é»è®¤ä¸ºå
³éï¼ï¼è¿æå©äºåå°é¿æ¶é´GCæ¶åºç¨ç¨åºåºç°çåé¡¿ï¼ä½ç±äºå¯è½ååºç¨ç¨åºå¹¶åæ§è¡ï¼æ以ä¼éä½CPU对åºç¨çå¤çè½åã
-Xloggc:file
ä¸-verbose:gcåè½ç±»ä¼¼ï¼åªæ¯å°æ¯æ¬¡GCäºä»¶çç¸å
³æ
åµè®°å½å°ä¸ä¸ªæ件ä¸ï¼æ件çä½ç½®æ好å¨æ¬å°ï¼ä»¥é¿å
ç½ç»çæ½å¨é®é¢ã
è¥ä¸verboseå½ä»¤åæ¶åºç°å¨å½ä»¤è¡ä¸ï¼å以-Xloggc为åã
-Xmsn
æå®jvmå çåå§å¤§å°ï¼é»è®¤ä¸ºç©çå
åç1/64ï¼æå°ä¸º1Mï¼å¯ä»¥æå®åä½ï¼æ¯å¦kãmï¼è¥ä¸æå®ï¼åé»è®¤ä¸ºåèã
-Xmxn
æå®jvmå çæ大å¼ï¼é»è®¤ä¸ºç©çå
åç1/4æè
1Gï¼æå°ä¸º2Mï¼åä½ä¸-Xmsä¸è´ã
-Xprof
è·è¸ªæ£è¿è¡çç¨åºï¼å¹¶å°è·è¸ªæ°æ®å¨æ åè¾åºè¾åºï¼éåäºå¼åç¯å¢è°è¯ã
-Xrs
åå°jvm对æä½ç³»ç»ä¿¡å·ï¼signalsï¼ç使ç¨ï¼è¯¥åæ°ä»1.3.1å¼å§ææï¼
ä»jdk1.3.0å¼å§ï¼jvmå
许ç¨åºå¨å
³éä¹åè¿å¯ä»¥æ§è¡ä¸äºä»£ç ï¼æ¯å¦å
³éæ°æ®åºçè¿æ¥æ± ï¼ï¼å³ä½¿jvm被çªç¶ç»æ¢ï¼
jvm å
³éå·¥å
·éè¿çæ§æ§å¶å°çç¸å
³äºä»¶è满足以ä¸çåè½ï¼æ´ç¡®åç说ï¼éç¥å¨å
³éå·¥å
·æ§è¡ä¹åï¼å
注åæ§å¶å°çæ§å¶handlerï¼ç¶å对 CTRL_C_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, and
CTRL_SHUTDOWN_EVENTè¿å ç±»äºä»¶ç´æ¥è¿åtrueã
ä½å¦æjvm以æå¡çå½¢å¼å¨åå°è¿è¡ï¼æ¯å¦servletå¼æï¼ï¼ä»è½æ¥ æ¶CTRL_LOGOFF_EVENTäºä»¶ï¼ä½æ¤æ¶å¹¶ä¸éè¦åå§åå
³éç¨åºï¼ä¸ºäºé¿å
类似å²çªçå次åºç°ï¼ä»jdk1.3.1å¼å§æä¾-Xrsåæ°ï¼å½æ¤ åæ°è¢«è®¾ç½®ä¹åï¼jvmå°ä¸æ¥æ¶æ§å¶å°çæ§å¶handlerï¼ä¹å°±æ¯è¯´ä»ä¸çæ§åå¤çCTRL_C_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, or
CTRL_SHUTDOWN_EVENTäºä»¶ã
-Xssn
设置å个线ç¨æ ç大å°ï¼ä¸è¬é»è®¤ä¸º512kã
ä¸é¢è¿äºåæ°ä¸ï¼æ¯å¦-Xmsnã-Xmxnâ¦â¦é½æ¯æ们æ§è½ä¼åä¸å¾éè¦çåæ°ï¼
-Xprofã-Xloggc:fileçé½æ¯å¨æ²¡æä¸ä¸è·è¸ªå·¥å
·æ
åµä¸æéç好æï¼
å¨ä¸ä¸å°èä¸æå°çå
³äºJProfilerçé
ç½®ä¸å°±ä½¿ç¨å°äº-Xbootclasspath/a:pathï¼
éStableåæ°
åé¢æ们æå°ç¨-XXä½ä¸ºåç¼çåæ°å表å¨jvmä¸å¯è½æ¯ä¸å¥å£®çï¼SUNä¹ä¸æ¨è使ç¨ï¼åç»å¯è½ä¼å¨æ²¡æéç¥çæ
åµä¸å°±ç´æ¥åæ¶äºï¼ä½æ¯ç±äºè¿äºåæ°ä¸çç¡®æå¾å¤æ¯å¯¹æ们å¾æç¨çï¼æ¯å¦æ们ç»å¸¸ä¼è§å°ç-XX:PermSizeã-XX:MaxPermSizeççï¼
ä¸é¢æ们å°å°±Java HotSpot VMä¸-XX:çå¯é
ç½®åæ°å表è¿è¡æè¿°ï¼
è¿äºåæ°å¯ä»¥è¢«æ¾æ£çèåæä¸ç±»ï¼
è¡ä¸ºåæ°ï¼Behavioral Optionsï¼ï¼ç¨äºæ¹åjvmçä¸äºåºç¡è¡ä¸ºï¼
æ§è½è°ä¼ï¼Performance Tuningï¼ï¼ç¨äºjvmçæ§è½è°ä¼ï¼
è°è¯åæ°ï¼Debugging
Optionsï¼ï¼ä¸è¬ç¨äºæå¼è·è¸ªãæå°ãè¾åºçjvmåæ°ï¼ç¨äºæ¾ç¤ºjvmæ´å 详ç»çä¿¡æ¯ï¼
ç±äºsunå®æ¹ææ¡£ä¸å¯¹ååæ°çæè¿°ä¹é½é常å°ï¼å¤§å¤åªæä¸å¥è¯ï¼ï¼èä¸å¤§å¤æ¶åOSå±é¢çä¸è¥¿ï¼å¾é¾æè¿°æ¸
æ¥ï¼æ以以ä¸æ¯æéäºä¸äºæ们å¼åä¸å¯è½ä¼ç¨å¾æ¯è¾å¤çé
置项ï¼è¥éè¦æ¥çææåæ°å表ï¼å¯ä»¥ç¹å»HotSpot VM Specific
Options.æ¥çåæï¼
é¦å
æ¥ä»ç»è¡ä¸ºåæ°ï¼
åæ°åå
¶é»è®¤å¼
æè¿°
-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=70
GCåjavaå ä¸ç©ºé²éå çæ大æ¯ä¾
-XX:MaxNewSize=size
æ°çæ对象è½å ç¨å
åçæ大å¼
-XX:MaxPermSize=64m
èç代对象è½å ç¨å
åçæ大å¼
-XX:MinHeapFreeRatio=40
GCå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.log
ä¿åé误æ¥å¿æè
æ°æ®å°æ件ä¸
-XX:-ExtendedDTraceProbes
å¼å¯solarisç¹æçdtraceæ¢é
-XX:HeapDumpPath=./java_pid.hprof
æå®å¯¼åºå ä¿¡æ¯æ¶çè·¯å¾ææ件å
-XX:-HeapDumpOnOutOfMemoryError
å½é¦æ¬¡ééOOMæ¶å¯¼åºæ¤æ¶å ä¸ç¸å
³ä¿¡æ¯
-XX:
åºç°è´å½ERRORä¹åè¿è¡èªå®ä¹å½ä»¤
-XX:OnOutOfMemoryError=";"
å½é¦æ¬¡éé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
è·è¸ªç±»å è½½å¨çº¦æçç¸å
³ä¿¡æ¯
温馨提示:内容为网友见解,仅供参考