Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在用 Java 编写一个函数,它必须递归调用自己很多次(在 ~10000 的范围内)。在达到某种程度的递归(~3250 atm)之后,Java 线程就保持不变并且必须重新启动。这不受启动 jvm 的 RAM 量的影响(当前为 2GB)。
如何影响我的 jvm 可以处理的最大嵌套级别?
按此顺序,尝试:
改变你的算法(你应该能够使用堆栈和循环代替)。
使用尾递归(即:改变你的语言,scala支持尾递归)
将参数传递-Xss1m给 JVM 以增加堆栈大小。1m表示 1 MiB。
-Xss1m
1m