<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java, Only Java!

    統計

    留言簿(20)

    積分與排名

    好友空間

    文檔技巧

    閱讀排行榜

    評論排行榜

    JVM啟動參數(轉)

    1.1 格式

    java[jvmargs]class[arguments]

    1.2 標準參數

    1.-server

    -client

    虛擬機服務器模式 / 客戶機模式,使用 server 模式可以提高性能,啟動比 client 模式慢,長期運行則比 client 模式快。當該參數不指定時,虛擬機啟動檢測主機是否為服務器,如果是則以 server 模式啟動,否則以 client 模式啟動, J2SE5.0 檢測的根據是至少 2 CPU 和最低 2GB 內存。(編者注:使用server模式啟動必須使用JDK,但是對于機器好像沒有這個要求)

    2.-agentlib:<lib-name>=<options>

    -agentpath:<lib-path>=<options>

    本地類庫加載,當你的部分類包含一些本地方法時,需要自己編寫本地代碼并位于操作系統加載共享包 (dll) 的路徑上,如果你不喜歡將該包放在操作系統識別的加載上,則可以通過指定這個參數來加載自己的本地共享包 (dll) 。不同之處在于 -agentlib 中僅指定包名,根據操作系統的不同虛擬機在一定路徑上搜索該包,譬如對于 windows 平臺虛擬機在 PATH 路徑上搜索該包,而 lib-path 則是指定全路徑,例如

    -agentlib:hprof windows 平臺虛擬機會在啟動時到 PATH 路徑上搜索 hprof.dll 并加載

    虛擬機在加載代理包之后有一個啟動的操作(詳細參見 JDK 參考), <options> 指的是代理包的啟動參數

    3.-classpathclasspath

    -cclasspath

    指定類路徑,系統應用類加載器 (ClassLoader) 會到該路徑下加載類

    4.-Dproperty=value

    設置系統屬性,可以通過 System.getProperty(property) 獲得

    5.-enableassertions[:<packagename>"..."|:<classname>]

    -ea[:<packagename>"..."|:<classname>]

    -disableassertions[:<packagename>"..."|:<class;]

    -da[:<packagename>"..."|:<classname>]

    啟用和停用斷言,默認是停用斷言。斷言指的是從 JDK1.4 開始在支持的關鍵字 assert assert(booleanvalue) ,當 booleanvalue false 時,拋出 java.lang.AssertionError ,必須指出的是,代碼編譯必須是 1.4 及其以上順從的,即編譯時使用如下參數

    java-source1.4

    一般僅在開發階段啟用斷言,而在運行階段不使用

    其使用包括如下幾種情況

    java-ea// 啟動斷言

    java-ea:pkname...// 在包 pkname 及其子包下起用斷言

    java-ea:pkname.classname// 對類 pkname.classname 啟用斷言

    停用斷言與啟用設置類似

    6.-enablesystemassertions

    -esa

    -disablesystemassertions

    -dsa

    啟用和停用系統類斷言

    7.-jar

    運行包含在一個 jar 包里的程序,一般在 jar 包的 /META-INF/MANIFEST.MF 文件中指定 Main-Class 值為要運行的主函數,譬如 Main-Class:ayufox.ejb3.Test

    8.-javaagent:<classname>[<=options>]

    加載 java 語言代理,該功能是 JDK5 新增加的,可以通過該設置在 JVM 運行主函數 (main) 之前做一些預處理工作,其中 classname 中必須包含有靜態方法

    publicstaticvoidpremain(StringagentArgs,Instrumentationinst){...}

    上面的 options 即是傳入該函數的代理參數 agentArgs ,關于 Instrumentation 詳細參見包 java.lang.instrument

    9.-verbose

    -verbose:class

    -verbose:gc

    -verbose:jni

    在運行時

    class: 將類加載情況在控制臺中打印出來

    gc: 將虛擬機的垃圾回收事件信息打印

    jni: 放本地方法調用信息打印

    -verbose -verbose:class 一樣

    10.-version

    -showversion

    顯示版本信息,不同在于第一種顯示版本后虛擬機結束退出

    11.-?

    -help

    顯示幫助信息并退出

    12.-X

    顯示非標準參數(見下面介紹)并退出

    1.3 非標準參數(以 -X 開頭)

    1.-Xint

    所有字節碼以解析模式運行。第一代虛擬機即是以這種方式運行,由于需要 Java 解析器解析運行,所以效率比較低;第二代虛擬機則采用將字節碼編譯成本地代碼的方式,效率大大提高;第三代虛擬機也叫自適應 (HotSpot) 虛擬機,通過監測代碼的執行情況檢測出代碼被頻繁執行的部分,將其盡量優化成本地代碼方式運行,而對于普通部分,則采用解析的模式運行。

    2.-Xbatch

    禁止后臺編譯,一般 HotSpot 虛擬機在檢測到一段代碼為頻繁執行代碼需要將其編譯成本地代碼時,會啟動一個后臺線程完成這個工作,而同時采用解析的方式繼續運行字節碼。如果設置了該參數,則會停止繼續執行字節碼,先將其編譯成本地代碼,然后再繼續執行。

    3.-Xdebug

    -Xnoagent

    -Xrun

    -Xrunjdwp

    啟用調試模式,見前面的《利用 JPDA 構建調試平臺》這篇文章,后面將在一個獨立的文章中詳細介紹

    4.-Xbootclasspath:bootclasspath

    -Xbootclasspath/a:path

    -Xbootclasspath/p:path

    設置啟動根 Classpath ,即使啟動類加載器將在何處加載對象,關于類啟動加載器,參見《 JVM 類加載器體系結構》說明,分號后面的值指定路徑,以分號隔開。其區別在于, -Xbootclasspath:bootclasspath 將新的根加載路徑覆蓋默認的路徑( \jre\lib\rt.jar ), -Xbootclasspath/a:path 將新的根加載路徑和原有的根加載路徑相結合, -Xbootclaspath/p:path 將新的根加載路徑與原有的根加載路徑相結合,加載類時優先搜索該加載路徑

    5.-Xcheck:jni

    對本地調用( JNI )采用更嚴格的檢測方式,在進行 JNI 調用之前檢測數據和傳入參數,如果碰到不合法的數據則強制結束掉虛擬機,對運行性能有損害

    6.-Xfuture

    對類格式 (class 文件格式 ) 采用更嚴格的檢測方式,以便向后兼容,最好在開發時采用該參數

    7.-Xnoclassgc

    不使用回收裝載類的內存 ( 轉貼備注 : 按原文修改 )

    8.-Xloggc:file

    -verbose:gc 功能一樣,不同在于 -Xloggc:file 將信息記錄到一個文件,而 -verbose:gc 將其輸出到控制臺

    9.-Xincgc

    -Xmsn

    -Xmxn

    -Xssn

    跟內存分配和垃圾回收相關, -Xincgc 表示采用漸進式垃圾回收, -Xmsn 設置初始內存池大小, -Xmxn 表示內存池允許的最大大小, -Xssn 是線程棧大小, n 是要設置的值,必須是 1024 的倍數,譬如

    -Xms6291456-Xmx83886080

    -Xms6144k-Xmx81920k

    -Xms6m-Xmx80m

    該部分對虛擬機的性能非常重要,在后面將有獨立的篇章詳細介紹

    10.-Xprof

    -Xrunhprof[:help][:<suboption>=<value>,...]

    在運行時剖析運行情況,并將剖析結果打印到控制臺,其中后一個可以指定特定剖析對象,譬如 cpu ,堆 (heap) 等,可以運行 java-Xrunhprof:help 獲得可以剖析的對象和取值

    11.-Xrs

    減少 JVM 對操作系統信號量的使用, J2SE1.3.1 開始引入。

    SUN J2SE1.3.0 中增加了 Java 應用程序關閉時的回調鉤子 (Hook) ,以便當 JVM 意外終止時用戶可以做一些資源清除工作。 JVM 監視控制臺事件以實現 JVM 意外終止時的回調。 JVM 明確地注冊了一個控制臺控制處理器,當 JVM 接收到 CTRL_C_EVENT,CTRL_CLOSE_EVENT,CTRL_LOGOFF_EVENT, CTRL_SHUTDOWN 事件時,該處理器介入關閉回掉鉤子 (HOOK) 的處理。

    如果虛擬機以服務的方式運行(譬如 WEB 服務器)當其收到 CTRL_LOGOFF_EVENT 事件,由于系統并不會因此終止 JVM 進程,故 JVM 不可以進行終止的操作,然而這與如上產生了沖突(不結束卻又調用關閉回調鉤子),為了避免這個問題,從 J2SE1.3.1 使用 -Xrs 以使 JVM 不再監測控制臺事件。

    參考: JDK5.0 參考文檔 http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/java.html

    ?

    posted on 2007-08-16 13:39 zYx.Tom 閱讀(2153) 評論(2)  編輯  收藏

    評論

    # re: JVM啟動參數(轉) 2007-09-12 20:04 千里冰封

    不錯,這些參數確實有幫助  回復  更多評論   

    # re: JVM啟動參數(轉) 2008-01-29 23:49 java綜合網

    http://www.javazh.cn

    不錯,不錯哦  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲第一成年男人的天堂| 亚洲另类少妇17p| 亚洲黄色在线视频| 久久久精品午夜免费不卡| 亚洲日产无码中文字幕| 免费国产污网站在线观看| 国产精品V亚洲精品V日韩精品 | 国产成人亚洲精品| 最新欧洲大片免费在线| 亚洲国产成人手机在线电影bd| 曰批全过程免费视频播放网站| 亚洲国产精品xo在线观看| 国产在线观看片a免费观看| 亚洲国产熟亚洲女视频| 女人被男人桶得好爽免费视频| 亚洲av无码av在线播放| 成人亚洲综合天堂| 日本高清不卡aⅴ免费网站| 一区二区三区亚洲| 成年女人毛片免费观看97| 成人亚洲国产精品久久| 国产gv天堂亚洲国产gv刚刚碰| 最近更新免费中文字幕大全| 亚洲精品福利在线观看| 日韩在线天堂免费观看| 狠狠躁狠狠爱免费视频无码| 久久亚洲美女精品国产精品 | 1000部夫妻午夜免费| 国产人成亚洲第一网站在线播放| 国产在线观看www鲁啊鲁免费| 四虎影视久久久免费观看| 婷婷精品国产亚洲AV麻豆不片| 国产免费的野战视频| 黄页网站在线视频免费| 亚洲国产成人久久综合一| 成人免费视频试看120秒| 国产精品hd免费观看| 亚洲av无码片区一区二区三区| 全部免费毛片免费播放| 久久久久成人片免费观看蜜芽| 国产亚洲精品成人AA片|