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

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

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

    Java, Only Java!

    統(tǒng)計(jì)

    留言簿(20)

    積分與排名

    好友空間

    文檔技巧

    閱讀排行榜

    評(píng)論排行榜

    JVM啟動(dòng)參數(shù)(轉(zhuǎn))

    1.1 格式

    java[jvmargs]class[arguments]

    1.2 標(biāo)準(zhǔn)參數(shù)

    1.-server

    -client

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

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

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

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

    -agentlib:hprof windows 平臺(tái)虛擬機(jī)會(huì)在啟動(dòng)時(shí)到 PATH 路徑上搜索 hprof.dll 并加載

    虛擬機(jī)在加載代理包之后有一個(gè)啟動(dòng)的操作(詳細(xì)參見 JDK 參考), <options> 指的是代理包的啟動(dòng)參數(shù)

    3.-classpathclasspath

    -cclasspath

    指定類路徑,系統(tǒng)應(yīng)用類加載器 (ClassLoader) 會(huì)到該路徑下加載類

    4.-Dproperty=value

    設(shè)置系統(tǒng)屬性,可以通過 System.getProperty(property) 獲得

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

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

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

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

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

    java-source1.4

    一般僅在開發(fā)階段啟用斷言,而在運(yùn)行階段不使用

    其使用包括如下幾種情況

    java-ea// 啟動(dòng)斷言

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

    java-ea:pkname.classname// 對(duì)類 pkname.classname 啟用斷言

    停用斷言與啟用設(shè)置類似

    6.-enablesystemassertions

    -esa

    -disablesystemassertions

    -dsa

    啟用和停用系統(tǒng)類斷言

    7.-jar

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

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

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

    publicstaticvoidpremain(StringagentArgs,Instrumentationinst){...}

    上面的 options 即是傳入該函數(shù)的代理參數(shù) agentArgs ,關(guān)于 Instrumentation 詳細(xì)參見包 java.lang.instrument

    9.-verbose

    -verbose:class

    -verbose:gc

    -verbose:jni

    在運(yùn)行時(shí)

    class: 將類加載情況在控制臺(tái)中打印出來

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

    jni: 放本地方法調(diào)用信息打印

    -verbose -verbose:class 一樣

    10.-version

    -showversion

    顯示版本信息,不同在于第一種顯示版本后虛擬機(jī)結(jié)束退出

    11.-?

    -help

    顯示幫助信息并退出

    12.-X

    顯示非標(biāo)準(zhǔn)參數(shù)(見下面介紹)并退出

    1.3 非標(biāo)準(zhǔn)參數(shù)(以 -X 開頭)

    1.-Xint

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

    2.-Xbatch

    禁止后臺(tái)編譯,一般 HotSpot 虛擬機(jī)在檢測到一段代碼為頻繁執(zhí)行代碼需要將其編譯成本地代碼時(shí),會(huì)啟動(dòng)一個(gè)后臺(tái)線程完成這個(gè)工作,而同時(shí)采用解析的方式繼續(xù)運(yùn)行字節(jié)碼。如果設(shè)置了該參數(shù),則會(huì)停止繼續(xù)執(zhí)行字節(jié)碼,先將其編譯成本地代碼,然后再繼續(xù)執(zhí)行。

    3.-Xdebug

    -Xnoagent

    -Xrun

    -Xrunjdwp

    啟用調(diào)試模式,見前面的《利用 JPDA 構(gòu)建調(diào)試平臺(tái)》這篇文章,后面將在一個(gè)獨(dú)立的文章中詳細(xì)介紹

    4.-Xbootclasspath:bootclasspath

    -Xbootclasspath/a:path

    -Xbootclasspath/p:path

    設(shè)置啟動(dòng)根 Classpath ,即使啟動(dòng)類加載器將在何處加載對(duì)象,關(guān)于類啟動(dòng)加載器,參見《 JVM 類加載器體系結(jié)構(gòu)》說明,分號(hào)后面的值指定路徑,以分號(hào)隔開。其區(qū)別在于, -Xbootclasspath:bootclasspath 將新的根加載路徑覆蓋默認(rèn)的路徑( \jre\lib\rt.jar ), -Xbootclasspath/a:path 將新的根加載路徑和原有的根加載路徑相結(jié)合, -Xbootclaspath/p:path 將新的根加載路徑與原有的根加載路徑相結(jié)合,加載類時(shí)優(yōu)先搜索該加載路徑

    5.-Xcheck:jni

    對(duì)本地調(diào)用( JNI )采用更嚴(yán)格的檢測方式,在進(jìn)行 JNI 調(diào)用之前檢測數(shù)據(jù)和傳入?yún)?shù),如果碰到不合法的數(shù)據(jù)則強(qiáng)制結(jié)束掉虛擬機(jī),對(duì)運(yùn)行性能有損害

    6.-Xfuture

    對(duì)類格式 (class 文件格式 ) 采用更嚴(yán)格的檢測方式,以便向后兼容,最好在開發(fā)時(shí)采用該參數(shù)

    7.-Xnoclassgc

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

    8.-Xloggc:file

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

    9.-Xincgc

    -Xmsn

    -Xmxn

    -Xssn

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

    -Xms6291456-Xmx83886080

    -Xms6144k-Xmx81920k

    -Xms6m-Xmx80m

    該部分對(duì)虛擬機(jī)的性能非常重要,在后面將有獨(dú)立的篇章詳細(xì)介紹

    10.-Xprof

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

    在運(yùn)行時(shí)剖析運(yùn)行情況,并將剖析結(jié)果打印到控制臺(tái),其中后一個(gè)可以指定特定剖析對(duì)象,譬如 cpu ,堆 (heap) 等,可以運(yùn)行 java-Xrunhprof:help 獲得可以剖析的對(duì)象和取值

    11.-Xrs

    減少 JVM 對(duì)操作系統(tǒng)信號(hào)量的使用, J2SE1.3.1 開始引入。

    SUN J2SE1.3.0 中增加了 Java 應(yīng)用程序關(guān)閉時(shí)的回調(diào)鉤子 (Hook) ,以便當(dāng) JVM 意外終止時(shí)用戶可以做一些資源清除工作。 JVM 監(jiān)視控制臺(tái)事件以實(shí)現(xiàn) JVM 意外終止時(shí)的回調(diào)。 JVM 明確地注冊(cè)了一個(gè)控制臺(tái)控制處理器,當(dāng) JVM 接收到 CTRL_C_EVENT,CTRL_CLOSE_EVENT,CTRL_LOGOFF_EVENT, CTRL_SHUTDOWN 事件時(shí),該處理器介入關(guān)閉回掉鉤子 (HOOK) 的處理。

    如果虛擬機(jī)以服務(wù)的方式運(yùn)行(譬如 WEB 服務(wù)器)當(dāng)其收到 CTRL_LOGOFF_EVENT 事件,由于系統(tǒng)并不會(huì)因此終止 JVM 進(jìn)程,故 JVM 不可以進(jìn)行終止的操作,然而這與如上產(chǎn)生了沖突(不結(jié)束卻又調(diào)用關(guān)閉回調(diào)鉤子),為了避免這個(gè)問題,從 J2SE1.3.1 使用 -Xrs 以使 JVM 不再監(jiān)測控制臺(tái)事件。

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

    ?

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

    評(píng)論

    # re: JVM啟動(dòng)參數(shù)(轉(zhuǎn)) 2007-09-12 20:04 千里冰封

    不錯(cuò),這些參數(shù)確實(shí)有幫助  回復(fù)  更多評(píng)論   

    # re: JVM啟動(dòng)參數(shù)(轉(zhuǎn)) 2008-01-29 23:49 java綜合網(wǎng)

    http://www.javazh.cn

    不錯(cuò),不錯(cuò)哦  回復(fù)  更多評(píng)論   


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费大片黄手机在线观看| 免费在线视频你懂的| 久久香蕉国产线看免费| 91热久久免费精品99| 好男人www免费高清视频在线| 日美韩电影免费看| 国产亚洲色视频在线| 十八禁视频在线观看免费无码无遮挡骂过 | 亚洲高清一区二区三区电影| 亚洲一区免费观看| 亚洲视频无码高清在线| 美女黄网站人色视频免费| 亚洲中文精品久久久久久不卡| 另类专区另类专区亚洲| 人妻在线日韩免费视频| 国产免费AV片在线播放唯爱网| a级毛片在线视频免费观看 | 色网站在线免费观看| 大地资源网高清在线观看免费 | 18禁黄网站禁片免费观看不卡| 免费网站看v片在线香蕉| 亚洲午夜精品第一区二区8050| 亚洲一级二级三级不卡| 日韩在线视精品在亚洲| 精品一区二区三区免费毛片| 成人影片一区免费观看| 在线播放免费播放av片| 亚洲日产韩国一二三四区| 亚洲人成小说网站色| 中文字幕不卡免费视频| 无码视频免费一区二三区| 成人片黄网站色大片免费| 亚洲综合在线另类色区奇米| 亚洲不卡中文字幕| 亚洲色精品三区二区一区| 99在线免费视频| 免费的涩涩视频在线播放| 久久亚洲精品AB无码播放| 国产亚洲成在线播放va| 69式国产真人免费视频| 亚洲精品美女久久777777|