JVM选项-Xss – 它究竟做了什么?

它在这里说-Xss用来“设置线程堆栈大小”,它是什么意思? 任何人都可以帮我理解这个吗?

Java应用程序中的每个线程都有自己的堆栈 。 堆栈用于保存返回地址,函数/方法调用参数等。因此,如果一个线程倾向于通过recursionalgorithm处理大型结构,那么对于所有那些返回地址等,可能需要一个大堆栈。 使用Sun JVM,您可以通过该参数设置该大小。

它确实在JVM上设置了堆栈大小。

您应该在以下两种情况下触碰它:

  • StackOverflowError (堆栈大小大于限制),增加值
  • OutOfMemoryError:无法创build新的本地线程 (太多的线程,每个线程有一个大的堆栈),减less它。

后者通常出现在你的Xss设置得太大的时候 – 那么你需要平衡它(testing!)

每个线程都有一个用于局部variables和内部值的堆栈。 堆栈大小限制了通话的深度。 通常这不是你需要改变的。

如果我没有弄错,这是告诉JVM在发出StackOverflowError之前接受多less连续的调用。 不是你想要改变的东西。