根據JVM的文檔,如果使用太大的Xms參數,JVM將無法啓動。所以,我問,如果我不使用它會發生什麼?我的虛擬機是否允許無限增長?只有當物理內存用完時它纔會停止嗎?如果不使用Xmx會發生什麼情況?
4
A
回答
4
XMX是最大堆大小。
如果我不使用它會怎麼樣?
如果省略,則使用默認值。默認值因JVM版本以及運行的平臺而異。版本5 are here的詳細信息。
默認情況下,在服務器級機器上選擇以下項。
...的物理內存高達四分之一
最大堆大小1GB的
3
如果不指定-Xmx
,那麼你將得到默認的配置爲您的操作系統,你的JVM,它的選項和版本。
鑑於可能會影響文檔的價值和時間的數量,可能會更容易問您的jvm。
例如我的Linux系統上:
$ java -XX:+PrintFlagsFinal -version 2>&1 | grep -i -E 'heapsize|permsize|version'
uintx AdaptivePermSizeWeight = 20 {product}
uintx ErgoHeapSizeLimit = 0 {product}
uintx InitialHeapSize := 66328448 {product}
uintx LargePageHeapSizeThreshold = 134217728 {product}
uintx MaxHeapSize := 1063256064 {product}
uintx MaxPermSize = 67108864 {pd product}
uintx PermSize = 16777216 {pd product}
java version "1.6.0_24"
因爲它默認爲-server
,但-client
我得到:
$ java -client -XX:+PrintFlagsFinal -version 2>&1 | grep -i -E 'heapsize|permsize|version'
uintx AdaptivePermSizeWeight = 20 {product}
uintx ErgoHeapSizeLimit = 0 {product}
uintx InitialHeapSize := 16777216 {product}
uintx LargePageHeapSizeThreshold = 134217728 {product}
uintx MaxHeapSize := 268435456 {product}
uintx MaxPermSize = 67108864 {pd product}
uintx PermSize = 12582912 {pd product}
java version "1.6.0_24"
雖然我的Windows系統上,我得到:
C:\>java -XX:+PrintFlagsFinal -version 2>&1 | findstr /I "heapsize permsize version"
uintx AdaptivePermSizeWeight = 20 {product}
uintx ErgoHeapSizeLimit = 0 {product}
uintx InitialHeapSize := 16777216 {product}
uintx LargePageHeapSizeThreshold = 134217728 {product}
uintx MaxHeapSize := 268435456 {product}
uintx MaxPermSize = 67108864 {pd product}
uintx PermSize = 12582912 {pd product}
java version "1.6.0_21"
這是-client
設置,似乎沒有-server
選項:
C:\>java -server -XX:+PrintFlagsFinal -version 2>&1 | findstr /I "heapsize permsize version"
C:\>java -server -XX:+PrintFlagsFinal -version
Error: no `server' JVM at `C:\jdk\jre\bin\server\jvm.dll'.
相關問題
- 1. minimax:如果min不起作用會發生什麼情況
- 2. 如果我不調用transaction.close或transaction.rollback,會發生什麼情況?
- 3. 如果我使用printf(「one \ 0two」),會發生什麼情況;?
- 4. 如果委託不存在,會發生什麼情況?
- 5. 如果SetConsoleMode()不支持ENABLE_VIRTUAL_TERMINAL_PROCESSING,會發生什麼情況?
- 6. 如果我不指定targetFramework =「4.0」,會發生什麼情況?
- 7. 如果瀏覽器不支持gzip,會發生什麼情況?
- 8. 如果不清除ThreadLocal變量,會發生什麼情況?
- 9. 如果finally塊引發異常,會發生什麼情況?
- 10. 如果CFile :: Write引發異常會發生什麼情況?
- 11. 如果iOS分發證書過期會發生什麼情況?
- 12. 如果我的IExceptionPublisher引發異常,會發生什麼情況?
- 13. 如果我在GMP中不使用mpz_clear會發生什麼情況?
- 14. 爲什麼會發生這種情況?
- 15. 如果未處理事件會發生什麼情況?
- 16. 如果有人拿到我的appsecret,會發生什麼情況?
- 17. 如果php.ini丟失,會發生什麼情況?
- 18. 如果您打破Lock()語句,會發生什麼情況?
- 19. 如果NSURLCache已滿,會發生什麼情況?
- 20. 如果未捕獲到異常,會發生什麼情況?
- 21. 如果Web服務更改參數會發生什麼情況?
- 22. 如果ExecutorService的隊列已滿,會發生什麼情況
- 23. 如果MySQL數據庫未關閉,會發生什麼情況?
- 24. 如果minSdkVersion低於targetSdkVersion,會發生什麼情況?
- 25. 如果CImage :: Load方法失敗會發生什麼情況?
- 26. 如果超時,會發生什麼情況?
- 27. 如果在SqlDataReader之前關閉SqlConnection,會發生什麼情況?
- 28. 如果StreamReader或StreamWriter未關閉,會發生什麼情況?
- 29. 如果DTD鏈接無處可逃,會發生什麼情況?
- 30. 如果打開失敗會發生什麼情況?