1

我正在用 Java 编写一个函数,它必须递归调用自己很多次(在 ~10000 的范围内)。在达到某种程度的递归(~3250 atm)之后,Java 线程就保持不变并且必须重新启动。这不受启动 jvm 的 RAM 量的影响(当前为 2GB)。

如何影响我的 jvm 可以处理的最大嵌套级别?

4

1 回答 1

5

按此顺序,尝试:

  1. 改变你的算法(你应该能够使用堆栈和循环代替)。

  2. 使用尾递归(即:改变你的语言,支持尾递归)

  3. 将参数传递-Xss1m给 JVM 以增加堆栈大小。1m表示 1 MiB。

也可以看看

于 2012-08-28T18:36:28.383 回答