列印所有的Oracle HotSpot JVM參數及其預設值(HotSpot JVM Options/Flags)

來源:互聯網
上載者:User

    Java程式員有時候需要瞭解JVM相關的參數,不管是出於好奇或者工作需要。Oracle的文檔中列出了一些,(點擊這裡),單並不是全部,而且有些參數的設定會預設啟用或者關閉其他一些參數,而在某些情況下設定某個參數是不會生效的。還有些時候你想讓JVM做某些事情,但是你不知道那個參數可以用。下面介紹一些辦法用以列出所有參數,這樣你在研究或者Google的時候也比較有明確的目標。

    如果你想查看一下線上正在啟動並執行JVM到底設定了那些參數,生效的是那些,可能用到的方法:

    1. 在Linux下用ps命令找到啟動Java應用時的參數

ps -ef | grep "your java app name"

    這個命令會打出你啟動Java應用時傳給java命令的所有參數,你可以看到裡面的JVM參數。

    2.直接看啟動指令碼,或者參數配置

    你未必能找到所有設定這JVM參數的地方,容易遺漏。

    一般來講以上兩種辦法都需要對JVM了如指掌或者非常熟悉,至少對特定的參數。

   

    其實JVM中有一個參數-XX:+PrintFlagsFinal,可以列印出幾乎所有的JVM支援的參數以及他們的預設值。如果你想要查看你的Java應用到底使用了那些參數,只要在啟動的時候加上這個參數就可以了。

    1.查看你使用的JDK支援的參數

java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version

    2.列印Java應用啟用的JVM參數

java -XX:+PrintFlagsFinal -classpath=/path/to/your/libs MainClass

    3.如果你的Java應用已經是運行狀態了,你想查看某個JVM參數生效沒有可以使用jinfo這個工具。比如說大名鼎鼎的G1記憶體回收行程,在JDK7update3中不論是用戶端(-client)還是伺服器(-server)模式下都不是預設啟動的。

    jinfo是隨JDK一起發布的,使用時先用jps找到Java應用的pid。直接運行jinfo可以查看使用說明。

jinfo -flag UseParallelOldGC 31072
-XX:+UseParallelOldGC

    JDK中實用的工具還很多,可以逐個的體驗一下${JAVA_HOME}/bin目錄中的每個命令,有驚喜。

   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.