标签: java recursion
我正在用Java编写一个函数,它必须递归调用自身很多次(在~10000的范围内)。达到一定程度的递归(~3250 atm)后,Java线程就会保持并且必须重新启动。这不受jvm启动的RAM量的影响(目前为2GB)。
如何影响jvm可以处理的最大嵌套级别?
答案 0 :(得分:5)
按此顺序,尝试:
更改算法(您应该可以使用堆栈和循环)。
使用尾递归(即:更改语言,scala支持尾递归)
将-Xss1m参数传递给JVM以增加堆栈大小。 1m表示1 MiB。
-Xss1m
1m