1. 程式人生 > >JVM常用引數說明

JVM常用引數說明

引數類別

引數項

說明

標準引數(-,所有的JVM實現都必須實現這些引數的功能,而且向後相容)

-client

client模式啟動jvm,這種方式啟動速度快,但執行時效能和記憶體管理效率不高,適合客戶端程式或者開發除錯。

-server

server模式啟動jvm,與client情況恰好相反。適合生產環境。64位的jvm自動以server模式啟動。

-classpath

-cp

告訴jvm類搜尋路徑。如果指定了-classpath,則jvm就忽略CLASSPATH中指定的路徑。各路徑之間以分號隔開。如果-classpathCLASSPATH都沒有指定,則

jvm從當前路徑尋找class

Jvm搜尋class的方式和順序為:Bootstrap(jvm自帶的)->ExtensionJRE_HOME/lib/ext中的)->User(應用程式自己的)。如下語句會輸出上述三種方式的路徑資訊:

System.getProperty("sun.boot.class.path");

System.getProperty("java.ext.dirs");

System.getProperty("java.class.path");

-Dproperty=value

設定系統屬性名/值對。如果value中有空格,則需要使用雙引號。

-jar

指定以jar包的形式啟動應用程式

-javaagent:<jarpath>[=<options>]

指定jvm啟動時裝入java語言裝置代理。關於裝置代理是jdk1.5新推出的概念。進一步的資訊可以參考java.lang.instrument.Instrumentation介面

-verbose[:class|gc|jni]

分別輸出:

Jvm載入類的資訊。診斷ClassNotFound錯誤時有用

Jvm每次gc的資訊。

Native方法呼叫的情況,用於診斷jni呼叫。

非標準引數(-X ,預設JVM實現此功能,但是不保證所有JVM都實行,而且不保證向後相容)

-Xbootclasspath:bootclasspath

jvm從指定的路徑中載入bootclass,用來替換jdkrt.jar。一般不會用到。

-Xbootclasspath/a:path

被指定的檔案追加到預設的bootstrap路徑中。

-Xbootclasspath/p:path

jvm優先於預設的bootstrap去載入path中指定的class

-Xincgc

開啟增量gc,一般也不會用到。

-Xloggc:file

輸出gc日誌,在沒有專業的監控工具時,這個顯得很有用。

-Xmsn

指定jvm堆的初始大小。預設是實體記憶體的1/64

-Xmxn

指定jvm堆的最大值。預設是實體記憶體的1/4

-Xprof

跟蹤正在執行的程式,並將跟蹤資料輸出到標準輸出,適合開發除錯。

-Xssn

設定單個執行緒棧的大小。

非穩定引數(-XX,此類引數各個JVM的實現會有不同,而且隨時可能消失)

-XX:+ScavengeBeforeFullGC

新生代GC優先於Full GC執行

-XX:+UseGCOverheadLimit

在丟擲OOM之前,jvm消耗在gc上的時間比例。

-XX:-UseConcMarkSweepGC

採用併發標記交換演算法進行GC。併發是指過個執行緒同時gc,適合多核處理器的情況,併發一定滿足並行,反之不成立。

-XX:-UseParallelGC

啟用並行GC。並行是指有獨立的執行緒進行gcgc時不會打斷應用執行緒。

-XX:-UseSerialGC

啟用序列GC。新版本jdk不會這麼幹了。

-XX:MaxNewSize=size

Java堆中新生成物件佔用堆的大小

-XX:MaxPermSize=size

Java堆中年老代佔用堆的最大值

-XX:HeadDumpPath=./java_pid<pid>.hprof

指定匯出堆資訊時的路徑或者檔名。

-XX:-HeadDumpOnOutOfMemoryError

當首次出現OOM時匯出此時堆中相關資訊。

-XX:-PrintGC

每次GC時列印相關資訊

-XX:-PrintGC Details

每次GC時列印詳細資訊

-XX:-PrintGCTimeStamps

列印GC的時間戳

-XX:-TranceClassLoading

跟蹤類的載入資訊

-XX:-TraceClassLoadingPreorder

跟蹤被引用到的所有類的載入資訊

-XX:-TranceClassResolution

跟蹤常量池

-XX:-TraceClassUnloading

跟蹤類的解除安裝資訊

相關推薦

jvm常用引數的設定和含義:-Xmx,-Xmn,-Xss,-XX:+HeapDumpOnOutOfMemoryError, -verbose:gc

1.設定堆的最大和最小值 -Xmx20M(最大值) ,-Xms20M(最小值)。 2.設定年輕代的大小 -Xmn2g:設定年輕代大小為2G。整個JVM記憶體大小=年輕代大小 + 年老代大小 + 持久代大小。持久代一般固定大小為64m,所以增大年輕代後,將會減小年老代大小。此值對系統性

Java監控工具及JVM常用引數

GC   Java技術體系中所提倡的自動記憶體管理最終可以歸結為自動化地解決了兩個問題:給物件分配記憶體以及回收分配給物件的記憶體。   而當需要排查各種記憶體溢位、記憶體洩漏問題時,當垃圾收整合為系統達到更高併發量的瓶頸時,我們就需要對那些“自動化”的技術實施必要的監控和調節,因

JVM 常用引數配置

常用引數: -Xmx :堆的最大值 -Xms :堆的最小值 -Xmn :堆年輕代大小 (eden+ 2 survivor space) -XX:PermSize: 設定持久代(perm gen)初始值 -XX:MaxPermSize: 設定持久代最大值 -XXSurvivorRatio:

JVM 常用引數設定

堆設定 : 1.-Xms:初始堆大小 2.-Xmx:最大堆大小 3.-Xss:執行緒棧大小 4.-XX:NewSize=n:設定年輕代大小 5.-XX:NewRatio=n:設定年輕代和年老代的比值。如:3,表示年輕代:老年代比值為1:3,年輕代佔整總和的1/

JVM常用引數

JVM中最大堆大小有三方面限制: 1.相關作業系統的資料模型(32-bit還是64-bit)限制。 2.系統的可用虛擬記憶體限制。 3.系統的可用實體記憶體限制。 注:32-bit的系統一般限制在1.5G~2G;64-bit的 系統對記憶體無限制。 典型設定: -Xmx3

JVM常用引數說明

引數類別 引數項 說明 標準引數(-,所有的JVM實現都必須實現這些引數的功能,而且向後相容) -client 以client模式啟動jvm,這種方式啟動速度快,但執行時效能和記憶體管理效率不高,適合客戶端程式或者開發除錯。 -server 以server模式啟動jvm,與cl

深入理解JVM虛擬機器10:JVM常用引數以及調優實踐

本文出自我的公眾號:程式設計師江湖。 滿滿乾貨,關注就送。 轉自http://www.rowkey.me/blog/2016/11/02/java-profile/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_s

jvm 常用配置引數

-verbose:gc 列印 GC 的簡要資訊 -XX:+printGC 列印 GC 的簡要資訊 [GC (Allocation Failure) 6036K->1672K(19968K), 0.0012595 secs] -XX:+Print

JVM調優常用引數設定及JMX引數設定監控

JVM常用引數設定 JVM堆空間佈局  堆設定            -Xms:初始堆大小,避免垃圾回收之後,JVM調整,一般和Xmx設定一樣大            -Xmx:最大堆大小            -Xmn :  年輕代大小,整個堆大小=年輕代大小

JVM調優之常用引數配置

一、堆設定 -Xms:初始堆大小 -Xmx:最大堆大小 -XX:NewSize=n:設定年輕代大小 -XX:NewRatio=n:設定年輕代和年老代的比值。如:為3,表示年輕代與年老代比值為1:3,年輕代佔整個年輕代年老代和的1/4 -XX:SurvivorRatio=n:年輕代中Eden區與

[jvm] [面試] jvm 常用配置引數

常見配置彙總 堆設定 -Xms:初始堆大小-Xmx:最大堆大小-XX:NewSize=n:設定年輕代大小-XX:NewRatio=n:設定年輕代和年老代的比值。如:為3,表示年輕代與年老代比值為1:3

JVM分析工具以及JVM常用調優引數

#檢視java中的所有執行緒 top -H -p pid[程序號] pidstat -p pid -u -t[執行緒級] #檢視啟動java程序 jps #檢視Java記憶體資訊  jmap jmap -heap pid   ===>檢視Java程序的堆分配資訊 jma

JVM常用調優引數

-Xmx:最大JVM可用記憶體, 例:-Xmx4g -Xms:最小JVM可用記憶體, 例:Xms4g -Xmn:年輕代記憶體大小,例:-Xmn2560m -XX:PermSize:永久代記憶體大小,該值太大會導致fullGC時間過長,太小將增加fullGC頻率,例:-XX:PermSize=128m -

Java虛擬機器詳解03----常用JVM配置引數

本文主要內容: Trace跟蹤引數 堆的分配引數 棧的分配引數 零、在IDE的後臺列印GC日誌: 既然學習JVM,閱讀GC日誌是處理Java虛擬機器記憶體問題的基礎技能,它只是一些人為確定的規則,沒有太多技術含量。 既然如此,那麼在I

【Java虛擬機器探究】5.常用JVM配置引數-棧的分配引數

在使用JVM編譯java時,都會去設定相關的引數(例如使用eclipse的時候,可以設定eclipse的eclipse.ini檔案來對jvm做一些引數配置)。jvm的引數設定主要涉及到三種,分別是Trace跟蹤引數、堆的分配引數、棧的分配引數。本章主要講解棧的分配引數的相關資

JVM 常用的啟動引數

JAVA虛擬機器(JVM)通過作業系統命令JAVA_HOME\bin\java –option 來啟動,-option為虛擬機器引數,JAVA_HOME為JDK安裝路徑,通過這些引數可對虛擬機器的執行狀態進行調整,掌握引數的含義可對虛擬機器的執行模式有更深入的理解。 虛擬機

常用JVM配置引數

【宣告】  歡迎轉載,但請保留文章原始出處→_→  本文主要內容: Trace跟蹤引數 堆的分配引數 棧的分配引數 零、在IDE的後臺列印GC日誌: 既然學習JVM,閱讀GC日誌是處理Java虛擬機器記憶體問題的基礎

JVM調優系列:(五)JVM常用除錯引數和工具

JVM常用除錯引數:–verbose:gc在虛擬機發生記憶體回收時在輸出裝置顯示資訊-Xloggc:filename把GC相關日誌資訊記錄到檔案以便分析-XX:-HeapDumpOnOutOfMemoryError當首次遭遇OOM時匯出此時堆中相關資訊-XX:OnError=

Java虛擬機器詳解----常用JVM配置引數

原文地址:http://www.cnblogs.com/smyhvae/p/4736162.html 本文主要內容: Trace跟蹤引數堆的分配引數棧的分配引數 零、在IDE的後臺列印GC日誌: 既然學習JVM,閱讀GC日誌是處理Java虛擬機器記憶體問題的

JVM調優---常用JVM配置引數

一、Trace跟蹤引數(跟蹤GC、類、變數的記憶體變化情況) 開啟GC跟蹤日誌(每次執行GC的資訊都能列印,獲得執行時間,空間大小): -verbose:gc 或 -XX:+printGC 或 -XX:+printGCDetails 類載入監控:(監控類載入的順序