【发布时间】:2014-12-18 11:46:08
【问题描述】:
我有一个问题,每当我尝试运行我的 JUnit 测试时,它们都会因为 StackOverflowError 而失败。我的问题是我有一个递归函数,它遍历一个非常大的图形以找到所有可能的路径。我还有一个递归计数器,它计算最深的递归是多少,并且大多数图形都位于 3000 到 4000 之间。当我运行 JUnit 测试时,StackOverflowError 总是准确地出现在 2300,无论我设置什么 VM 参数。
我已经尝试过 -Xss1m 到 -Xss10m 但无济于事 StackOverflowError 仍然出现在相同的递归深度。我已经在互联网上搜索了一下,发现我还必须设置正在运行的 Eclipse 应用程序的堆栈大小。所以我做了,但再次无济于事。
这里有一些我已经尝试设置堆栈大小的屏幕截图:
有什么我错过的想法吗?
【问题讨论】:
-
虽然这是一个有效的问题,但您是否考虑过简单地重构代码以使用非递归方法?
-
是的,我们目前正在研究一种非递归的方法来解决这个问题,但目前我们需要这个解决方案,因为它比我们最初认为的更复杂......
标签: java eclipse junit junit4 stack-size