具有高嵌套级别的Java递归

Tho*_*mas 1 java recursion

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

我怎样才能影响jvm可以处理的最大嵌套级别?

Tom*_*icz 5

按此顺序,尝试:

  1. 更改算法(您应该能够使用堆栈和循环).

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

  3. -Xss1m参数传递给JVM以增加堆栈大小.1m意味着1 MiB.

也可以看看