我发现我们正在使用的遗留软件,其启动属性格式错误,因此它接收这两个不相等的xmx作为属性:
java -jar myapp.jar -Xmx128m -Xmx512m
Run Code Online (Sandbox Code Playgroud)
我无法访问启动器源代码(无法修改它),所以我问,这些参数的重复有什么影响?我可以这样离开吗,还是我应该担心?哪一个将适用?
使用的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);
}
}
Run Code Online (Sandbox Code Playgroud)
在我的 JVM(Linux下的Sun/Oracle 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
| 归档时间: |
|
| 查看次数: |
1439 次 |
| 最近记录: |