我發現,我們使用的是有它的發射特性畸形遺留軟件,因此它接收這兩個不平等的XMX作爲一個屬性:JVM命令啓動選項複製
java -jar myapp.jar -Xmx128m -Xmx512m
我沒有訪問啓動程序的源代碼(不能修改它),所以我問,這些參數的重複有什麼影響?我可以這樣離開嗎,還是應該擔心?哪一個將被應用?
使用的JVM是JRE 6更新18
我發現,我們使用的是有它的發射特性畸形遺留軟件,因此它接收這兩個不平等的XMX作爲一個屬性:JVM命令啓動選項複製
java -jar myapp.jar -Xmx128m -Xmx512m
我沒有訪問啓動程序的源代碼(不能修改它),所以我問,這些參數的重複有什麼影響?我可以這樣離開嗎,還是應該擔心?哪一個將被應用?
使用的JVM是JRE 6更新18
在一般情況下,它通常是如果一個工具,不拒絕重複該被使用的一種選擇,但你不能對數,除非工具文檔它。
最好的辦法就是看你的具體的JVM會發生什麼,通過Runtime
的totalMemory
和maxMemory
:
public class HeapSize {
public static final void main(String[] args) {
Runtime rt = Runtime.getRuntime();
System.out.println("Total currently: " + rt.totalMemory());
System.out.println("Max: " + rt.maxMemory());
System.exit(0);
}
}
在我 JVM(太陽/ Oracle的Linux下的1.6.0_26-B03)後面的選項生效:
$ java -Xmx16m HeapSize Total currently: 16121856 Max: 16121856 $ java -Xmx32m HeapSize Total currently: 32178176 Max: 32178176 $ java -Xmx16m -Xmx32m HeapSize Total currently: 32178176 Max: 32178176 $ java -Xmx16m -Xmx32m -Xmx128m HeapSize Total currently: 59113472 Max: 119341056
我理解它會使用最後的設置。