具有高嵌套级别的Java递归

时间:2012-08-28 18:33:40

标签: java recursion

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

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

1 个答案:

答案 0 :(得分:5)

按此顺序,尝试:

  1. 更改算法(您应该可以使用堆栈和循环)。

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

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

  4. 另见