JVM 选项 -Xss - 它到底做了什么?

2022-08-31 05:25:04

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


答案 1

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


答案 2

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

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

  • 堆栈溢出错误(堆栈大小大于限制),增加值
  • OutOfMemoryError:无法创建新的本机线程(线程太多,每个线程都有一个大堆栈),请减少它。

后者通常出现在你的Xss设置得太大的时候 - 然后你需要平衡它(测试!


推荐