首页 文章

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

提问于
浏览
194

它说here -Xss用于"set thread stack size",这究竟是什么意思?谁能帮我理解这个?

4 回答

  • 229

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

  • 4

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

  • 137

    每个线程都有一个堆栈,用于局部变量和内部值 . 堆栈大小限制了您的呼叫的深度 . 通常,这不是您需要改变的 .

  • 3

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

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

    • StackOverflowError (堆栈大小大于限制),增加值

    • OutOfMemoryError: unable to create new native thread (线程太多,每个线程都有一个大堆栈),减少它 .

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

相关问题