【发布时间】:2014-06-26 11:11:57
【问题描述】:
如果我像这样从 Windows 框上的命令行运行 java:
"C:\Program Files (x86)\Java\jdk1.7.0_51\bin\java.exe" -XshowSettings:all -Xss=1m -Xmx256m
我看到了这个输出:
VM settings:
Stack Size: 1.00M
Max. Heap Size: 256.00M
Ergonomics Machine Class: client
Using VM: Java HotSpot(TM) Client VM
对我来说重要的部分是“堆栈大小:1.00M”,这是我通过命令行选项“-Xss1m”设置的。但是,如果我删除此选项并让 VM 以默认堆栈大小运行,我会得到以下输出:
VM settings:
Max. Heap Size: 256.00M
Ergonomics Machine Class: client
Using VM: Java HotSpot(TM) Client VM
请注意,它不再显示“堆栈大小”。如果我没有指定自定义“-Xss”值,我希望能看到默认大小。有什么方法可以确定默认的线程栈大小吗?
【问题讨论】:
-
试试
-XX:+PrintFinalFlags -
@Peter Lawrey -XX:+PrintFinalFlags 是我的 java vm 的“无法识别的 VM 选项”。不过感谢您的建议。
-
糟糕,您需要另一个选项来使用它。 stackoverflow.com/questions/10486375/print-all-jvm-flags
-
啊,现在这向我展示了很多东西。当我在命令行上设置“-Xss1m”之间切换时,“-XX:+PrintFlagsFinal”输出中唯一改变的值是“ThreadStackSize”,如果我设置“-Xss1m”则显示 1024,如果我设置“-Xss1m”则显示“0”离开“-Xss1m”。我猜 0 不是线程堆栈大小的真正默认值,或者我想什么都不会运行。
标签: java jvm jvm-hotspot