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

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

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

    隨筆-72  評(píng)論-20  文章-0  trackbacks-1
    在Java、J2EE大型應(yīng)用中,JVM非標(biāo)準(zhǔn)參數(shù)的配置直接關(guān)系到整個(gè)系統(tǒng)的性能。
    JVM非標(biāo)準(zhǔn)參數(shù)指的是JVM底層的一些配置參數(shù),這些參數(shù)在一般開(kāi)發(fā)中默認(rèn)即可,不需要任何配置。但是在生產(chǎn)環(huán)境中,為了提高性能,往往需要調(diào)整這些參數(shù),以求系統(tǒng)達(dá)到最佳新能。
    另外這些參數(shù)的配置也是影響系統(tǒng)穩(wěn)定性的一個(gè)重要因素,相信大多數(shù)Java開(kāi)發(fā)人員都見(jiàn)過(guò)“OutOfMemory”類(lèi)型的錯(cuò)誤。呵呵,這其中很可能就是JVM參數(shù)配置不當(dāng)或者就沒(méi)有配置沒(méi)意識(shí)到配置引起的。
    為了說(shuō)明這些參數(shù),還需要說(shuō)說(shuō)JDK中的命令行工具一些知識(shí)做鋪墊。
    首先看如何獲取這些命令配置信息說(shuō)明:
    假設(shè)你是windows平臺(tái),你安裝了J2SDK,那么現(xiàn)在你從cmd控制臺(tái)窗口進(jìn)入J2SDK安裝目錄下的bin目錄,然后運(yùn)行java命令,出現(xiàn)如下結(jié)果,這些就是包括java.exe工具的和JVM的所有命令都在里面。
    -----------------------------------------------------------------------
    D:\j2sdk15\bin>java
    Usage: java [-options] class [args...]
               (to execute a class)
       or  java [-options] -jar jarfile [args...]
               (to execute a jar file)
    where options include:
        -client       to select the "client" VM
        -server       to select the "server" VM
        -hotspot      is a synonym for the "client" VM  [deprecated]
                      The default VM is client.
        -cp <class search path of directories and zip/jar files>
        -classpath <class search path of directories and zip/jar files>
                      A ; separated list of directories, JAR archives,
                      and ZIP archives to search for class files.
        -D<name>=<value>
                      set a system property
        -verbose[:class|gc|jni]
                      enable verbose output
        -version      print product version and exit
        -version:<value>
                      require the specified version to run
        -showversion  print product version and continue
        -jre-restrict-search | -jre-no-restrict-search
                      include/exclude user private JREs in the version search
        -? -help      print this help message
        -X            print help on non-standard options
        -ea[:<packagename>...|:<classname>]
        -enableassertions[:<packagename>...|:<classname>]
                      enable assertions
        -da[:<packagename>...|:<classname>]
        -disableassertions[:<packagename>...|:<classname>]
                      disable assertions
        -esa | -enablesystemassertions
                      enable system assertions
        -dsa | -disablesystemassertions
                      disable system assertions
        -agentlib:<libname>[=<options>]
                      load native agent library <libname>, e.g. -agentlib:hprof
                        see also, -agentlib:jdwp=help and -agentlib:hprof=help
        -agentpath:<pathname>[=<options>]
                      load native agent library by full pathname
        -javaagent:<jarpath>[=<options>]
                      load Java programming language agent, see java.lang.instrument
    -----------------------------------------------------------------------
    在控制臺(tái)輸出信息中,有個(gè)-X(注意是大寫(xiě))的命令,這個(gè)正是查看JVM配置參數(shù)的命令。
    其次,用java -X 命令查看JVM的配置說(shuō)明:
    運(yùn)行后如下結(jié)果,這些就是配置JVM參數(shù)的秘密武器,這些信息都是英文的,為了方便閱讀,我根據(jù)自己的理解翻譯成中文了(不準(zhǔn)確的地方還請(qǐng)各位博友斧正)
    -----------------------------------------------------------------------
    D:\j2sdk15\bin>java -X
        -Xmixed           mixed mode execution (default)
        -Xint             interpreted mode execution only
        -Xbootclasspath:<directories and zip/jar files separated by ;>
                          set search path for bootstrap classes and resources
        -Xbootclasspath/a:<directories and zip/jar files separated by ;>
                          append to end of bootstrap class path
        -Xbootclasspath/p:<directories and zip/jar files separated by ;>
                          prepend in front of bootstrap class path
        -Xnoclassgc       disable class garbage collection
        -Xincgc           enable incremental garbage collection
        -Xloggc:<file>    log GC status to a file with time stamps
        -Xbatch           disable background compilation
        -Xms<size>        set initial Java heap size
        -Xmx<size>        set maximum Java heap size
        -Xss<size>        set java thread stack size
        -Xprof            output cpu profiling data
        -Xfuture          enable strictest checks, anticipating future default
        -Xrs              reduce use of OS signals by Java/VM (see documentation)
        -Xcheck:jni       perform additional checks for JNI functions
        -Xshare:off       do not attempt to use shared class data
        -Xshare:auto      use shared class data if possible (default)
        -Xshare:on        require using shared class data, otherwise fail.
    The -X options are non-standard and subject to change without notice.
    -----------------------------------------------------------------------
    JVM配置參數(shù)中文說(shuō)明:
    -----------------------------------------------------------------------
    1、-Xmixed           mixed mode execution (default)
     混合模式執(zhí)行
    2、-Xint             interpreted mode execution only
     解釋模式執(zhí)行
    3、-Xbootclasspath:<directories and zip/jar files separated by ;>
          set search path for bootstrap classes and resources
     設(shè)置zip/jar資源或者類(lèi)(.class文件)存放目錄路徑
    3、-Xbootclasspath/a:<directories and zip/jar files separated by ;>
          append to end of bootstrap class path
     追加zip/jar資源或者類(lèi)(.class文件)存放目錄路徑
    4、-Xbootclasspath/p:<directories and zip/jar files separated by ;>
          prepend in front of bootstrap class path
     預(yù)先加載zip/jar資源或者類(lèi)(.class文件)存放目錄路徑
    5、-Xnoclassgc       disable class garbage collection
     關(guān)閉類(lèi)垃圾回收功能
    6、-Xincgc           enable incremental garbage collection
     開(kāi)啟類(lèi)的垃圾回收功能
    7、-Xloggc:<file>    log GC status to a file with time stamps
     記錄垃圾回日志到一個(gè)文件。
    8、-Xbatch           disable background compilation
     關(guān)閉后臺(tái)編譯
    9、-Xms<size>        set initial Java heap size
     設(shè)置JVM初始化堆內(nèi)存大小
    10、-Xmx<size>        set maximum Java heap size
     設(shè)置JVM最大的堆內(nèi)存大小
    11、-Xss<size>        set java thread stack size
     設(shè)置JVM棧內(nèi)存大小
    12、-Xprof            output cpu profiling data
     輸入CPU概要表數(shù)據(jù)
    13、-Xfuture          enable strictest checks, anticipating future default
     執(zhí)行嚴(yán)格的代碼檢查,預(yù)測(cè)可能出現(xiàn)的情況
    14、-Xrs              reduce use of OS signals by Java/VM (see documentation)
     通過(guò)JVM還原操作系統(tǒng)信號(hào)
    15、-Xcheck:jni       perform additional checks for JNI functions
     對(duì)JNI函數(shù)執(zhí)行檢查
    16、-Xshare:off       do not attempt to use shared class data
     盡可能不去使用共享類(lèi)的數(shù)據(jù)
    17、-Xshare:auto      use shared class data if possible (default)
     盡可能的使用共享類(lèi)的數(shù)據(jù)
    18、-Xshare:on       require using shared class data, otherwise fail.
     盡可能的使用共享類(lèi)的數(shù)據(jù),否則運(yùn)行失敗
    The -X options are non-standard and subject to change without notice.
    -----------------------------------------------------------------------
    怎么用這這些參數(shù)呢?其實(shí)所有的命令行都是這么一用,下面我就給出一個(gè)最簡(jiǎn)單的HelloWorl的例子來(lái)演示這個(gè)參數(shù)的用法,非常的簡(jiǎn)單。
    HelloWorld.java
    -----------------------------------------------
    public class  HelloWorld
    {
     public static void main(String[] args)
     {
      System.out.println("Hello World!");
     }
    }
    編譯并運(yùn)行:
    D:\j2sdk15\bin>javac HelloWorld.java
    D:\j2sdk15\bin>java -Xms256M -Xmx512M HelloWorld
    Hello World!
    呵呵,這下滿(mǎn)足了吧!
    實(shí)踐:在大型系統(tǒng)或者應(yīng)用中配置JVM參數(shù)
    比如你配置IDE工具的參數(shù),常見(jiàn)的有IDEA、Eclipse,這個(gè)是在一個(gè)配置文件中指定即可。
    如果你要在J2EE環(huán)境中配置這些參數(shù),那么你需要在J2EE應(yīng)用服務(wù)器或者Servlet容器相關(guān)啟動(dòng)參數(shù)設(shè)置處指定,其啟動(dòng)文件中來(lái)配置,Tomcat是在catalina.bat中配置,weblogic和websphere是在其他地方,具體我就說(shuō)了,相信玩過(guò)的這些大型服務(wù)器的人都知道,沒(méi)玩過(guò)的看看這篇文章,玩玩就知道了,呵呵。
    另外常常有人問(wèn)到j(luò)dk的一些相關(guān)命令用法,其實(shí),當(dāng)你看到這里的時(shí)候,你應(yīng)該知道如何獲取這些命令的用法了。如果你還不會(huì),那么,建議你去學(xué)學(xué)DOS,我是沒(méi)轍了。如果你會(huì)這些,還是沒(méi)有看明白,那么你趕緊學(xué)學(xué)英語(yǔ)吧,這樣你就能看懂了。
    另外:我在最后給出常用的幾個(gè)Java命令行說(shuō)明,以供參考:
    (1)、javac
    用法:javac <選項(xiàng)> <源文件>
    其中,可能的選項(xiàng)包括:
      -g                         生成所有調(diào)試信息
      -g:none                    不生成任何調(diào)試信息
      -g:{lines,vars,source}     只生成某些調(diào)試信息
      -nowarn                    不生成任何警告
      -verbose                   輸出有關(guān)編譯器正在執(zhí)行的操作的消息
      -deprecation               輸出使用已過(guò)時(shí)的 API 的源位置
      -classpath <路徑>            指定查找用戶(hù)類(lèi)文件的位置
      -cp <路徑>                   指定查找用戶(hù)類(lèi)文件的位置
      -sourcepath <路徑>           指定查找輸入源文件的位置
      -bootclasspath <路徑>        覆蓋引導(dǎo)類(lèi)文件的位置
      -extdirs <目錄>              覆蓋安裝的擴(kuò)展目錄的位置
      -endorseddirs <目錄>         覆蓋簽名的標(biāo)準(zhǔn)路徑的位置
      -d <目錄>                    指定存放生成的類(lèi)文件的位置
      -encoding <編碼>             指定源文件使用的字符編碼
      -source <版本>               提供與指定版本的源兼容性
      -target <版本>               生成特定 VM 版本的類(lèi)文件
      -version                   版本信息
      -help                      輸出標(biāo)準(zhǔn)選項(xiàng)的提要
      -X                         輸出非標(biāo)準(zhǔn)選項(xiàng)的提要
      -J<標(biāo)志>                     直接將 <標(biāo)志> 傳遞給運(yùn)行時(shí)系統(tǒng)
    (2)、jar
    用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目錄](méi) 文件名 ...
    選項(xiàng):
        -c  創(chuàng)建新的存檔
        -t  列出存檔內(nèi)容的列表
        -x  展開(kāi)存檔中的命名的(或所有的〕文件
        -u  更新已存在的存檔
        -v  生成詳細(xì)輸出到標(biāo)準(zhǔn)輸出上
        -f  指定存檔文件名
        -m  包含來(lái)自標(biāo)明文件的標(biāo)明信息
        -0  只存儲(chǔ)方式;未用ZIP壓縮格式
        -M  不產(chǎn)生所有項(xiàng)的清單(manifest〕文件
        -i  為指定的jar文件產(chǎn)生索引信息
        -C  改變到指定的目錄,并且包含下列文件:
    如果一個(gè)文件名是一個(gè)目錄,它將被遞歸處理。
    清單(manifest〕文件名和存檔文件名都需要被指定,按'm' 和 'f'標(biāo)志指定的相同順序。
    示例1:將兩個(gè)class文件存檔到一個(gè)名為 'classes.jar' 的存檔文件中:
           jar cvf classes.jar Foo.class Bar.class
    示例2:用一個(gè)存在的清單(manifest)文件 'mymanifest' 將 foo/ 目錄下的所有
               文件存檔到一個(gè)名為 'classes.jar' 的存檔文件中:
           jar cvfm classes.jar mymanifest -C foo/ .
    (3)、javadoc
    javadoc: 錯(cuò)誤 - 未指定軟件包或類(lèi)。
    用法:javadoc [選項(xiàng)] [軟件包名稱(chēng)] [源文件] [@file]
    -overview <文件>          讀取 HTML 文件的概述文檔
    -public                   僅顯示公共類(lèi)和成員
    -protected                顯示受保護(hù)/公共類(lèi)和成員(默認(rèn))
    -package                  顯示軟件包/受保護(hù)/公共類(lèi)和成員
    -private                  顯示所有類(lèi)和成員
    -help                     顯示命令行選項(xiàng)并退出
    -doclet <類(lèi)>              通過(guò)替代 doclet 生成輸出
    -docletpath <路徑>        指定查找 doclet 類(lèi)文件的位置
    -sourcepath <路徑列表>    指定查找源文件的位置
    -classpath <路徑列表>     指定查找用戶(hù)類(lèi)文件的位置
    -exclude <軟件包列表>     指定要排除的軟件包的列表
    -subpackages <子軟件包列表> 指定要遞歸裝入的子軟件包
    -breakiterator            使用 BreakIterator 計(jì)算第 1 句
    -bootclasspath <路徑列表> 覆蓋引導(dǎo)類(lèi)加載器所裝入的
                              類(lèi)文件的位置
    -source <版本>            提供與指定版本的源兼容性
    -extdirs <目錄列表>       覆蓋安裝的擴(kuò)展目錄的位置
    -verbose                  輸出有關(guān) Javadoc 正在執(zhí)行的操作的消息
    -locale <名稱(chēng)>            要使用的語(yǔ)言環(huán)境,例如 en_US 或 en_US_WIN
    -encoding <名稱(chēng)>          源文件編碼名稱(chēng)
    -quiet                    不顯示狀態(tài)消息
    -J<標(biāo)志>                  直接將 <標(biāo)志> 傳遞給運(yùn)行時(shí)系統(tǒng)
    通過(guò)標(biāo)準(zhǔn) doclet 提供:
    -d <目錄>                         輸出文件的目標(biāo)目錄
    -use                              創(chuàng)建類(lèi)和軟件包用法頁(yè)面
    -version                          包含 @version 段
    -author                           包含 @author 段
    -docfilessubdirs                  遞歸復(fù)制文檔文件子目錄
    -splitindex                       將索引分為每個(gè)字母對(duì)應(yīng)一個(gè)文件
    -windowtitle <文本>               文檔的瀏覽器窗口標(biāo)題
    -doctitle <html 代碼>             包含概述頁(yè)面的標(biāo)題
    -header <html 代碼>               包含每個(gè)頁(yè)面的頁(yè)眉文本
    -footer <html 代碼>               包含每個(gè)頁(yè)面的頁(yè)腳文本
    -bottom <html 代碼>               包含每個(gè)頁(yè)面的底部文本
    -link <url>                       創(chuàng)建指向位于 <url> 的 javadoc 輸出的鏈接
    -linkoffline <url> <url2>         利用位于 <url2> 的軟件包列表鏈接至位于 <url>
    的文檔
    -excludedocfilessubdir <名稱(chēng) 1>:..排除帶有給定名稱(chēng)的所有文檔文件子目錄。
    -group <名稱(chēng)> <p1>:<p2>..         在概述頁(yè)面中,將指定的軟件包分組
    -nocomment                        抑止描述和標(biāo)記,只生成聲明。
    -nodeprecated                     不包含 @deprecated 信息
    -noqualifier <名稱(chēng) 1>:<名稱(chēng) 2>:...從輸出中排除限定符的列表。
    -nosince                          不包含 @since 信息
    -notimestamp                      不包含隱藏時(shí)間戳
    -nodeprecatedlist                 不生成已過(guò)時(shí)的列表
    -notree                           不生成類(lèi)分層結(jié)構(gòu)
    -noindex                          不生成索引
    -nohelp                           不生成幫助鏈接
    -nonavbar                         不生成導(dǎo)航欄
    -serialwarn                       生成有關(guān) @serial 標(biāo)記的警告
    -tag <名稱(chēng)>:<位置>:<標(biāo)題>         指定單個(gè)變量自定義標(biāo)記
    -taglet                           要注冊(cè)的 Taglet 的全限定名稱(chēng)
    -tagletpath                       Taglet 的路徑
    -charset <字符集>                 用于跨平臺(tái)查看生成的文檔的字符集。
    -helpfile <文件>                  包含幫助鏈接所鏈接到的文件
    -linksource                       以 HTML 格式生成源
    -sourcetab <制表符長(zhǎng)度>           指定源中每個(gè)制表符占據(jù)的空格數(shù)
    -keywords                         使軟件包、類(lèi)和成員信息附帶 HTML 元標(biāo)記
    -stylesheetfile <路徑>            用于更改生成文檔的樣式的文件
    -docencoding <名稱(chēng)>               輸出編碼名稱(chēng)
    (4)、rmid
    rmid: 非法選項(xiàng):-?
    用法:rmid <option>
    其中,<option> 包括:
      -port <option>        指定供 rmid 使用的端口
      -log <directory>    指定 rmid 將日志寫(xiě)入的目錄
      -stop               停止當(dāng)前的 rmid 調(diào)用(對(duì)指定端口)
      -C<runtime 標(biāo)記>    向每個(gè)子進(jìn)程傳遞參數(shù)(激活組)
      -J<runtime 標(biāo)記>    向 java 解釋程序傳遞參數(shù)
    有關(guān)更多的java命令可以參考一下這個(gè)文章:http://ruruhuang.javaeye.com/blog/47564
    posted on 2007-07-03 15:30 前方的路 閱讀(498) 評(píng)論(0)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久亚洲精品无码gv| 亚洲日本在线电影| 中文字幕一区二区三区免费视频 | 亚洲国产成人九九综合| 日本视频在线观看永久免费| 亚洲精品无码久久一线| 中国在线观看免费的www| 亚洲精品午夜国产VA久久成人| 中文在线免费视频| 亚洲AV永久无码精品| 国产成人精品无码免费看| 亚洲精品国产成人专区| 91精品国产免费久久国语蜜臀| 青青草原精品国产亚洲av| 1000部拍拍拍18勿入免费凤凰福利| 亚洲欧洲精品在线| 无码专区永久免费AV网站 | 亚洲国产成AV人天堂无码| 国产福利在线免费| 男男gay做爽爽的视频免费| 亚洲人成网站观看在线播放| 在线观看免费视频网站色| 亚洲天堂一区二区| 在线观看人成视频免费| 日亚毛片免费乱码不卡一区| 国产亚洲一区二区手机在线观看| 99在线视频免费| 亚洲精品国产摄像头| 久久夜色精品国产亚洲av| 免费不卡在线观看AV| 亚洲精品无码日韩国产不卡av| 日韩精品电影一区亚洲| 中文字幕乱码一区二区免费| 亚洲18在线天美| 国产午夜亚洲精品午夜鲁丝片| h在线观看视频免费网站| 日本高清不卡中文字幕免费| 亚洲精品福利在线观看| 免费在线观看黄网站| 在线美女免费观看网站h| 国产亚洲精品精品精品|