重复的Java运行时选项:优先级的顺序是什么?
2022-08-31 10:55:44
考虑以下命令行
java -Xms128m -Xms256m myapp.jar
哪些设置将适用于JVM最小内存(选项):128m或256m?Xms
考虑以下命令行
java -Xms128m -Xms256m myapp.jar
哪些设置将适用于JVM最小内存(选项):128m或256m?Xms
与往常一样,检查本地JVM的特定实现,但这是从命令行检查而无需编码的快速方法。
> java -version; java -Xmx1G -XX:+PrintFlagsFinal -Xmx2G 2>/dev/null | grep MaxHeapSize
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
uintx MaxHeapSize := 2147483648 {product}
所以在这种情况下,你会看到,参数的第二个实例(2G)是优先的(至少在1.8中),这也是我对大多数其他现代版本的经验。
IBM JVM 将参数的最右侧实例视为胜出项。我不能和HotSpot说话,等等。
我们这样做是因为批处理文件中通常有深度嵌套的命令行,人们只能在末尾添加,并希望使其成为赢家。