首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java堆栈溢出错误 - 如何在Eclipse中增加堆栈大小?

Java堆栈溢出错误 - 如何在Eclipse中增加堆栈大小?
EN

Stack Overflow用户
提问于 2018-03-19 08:06:57
回答 2查看 0关注 0票数 0

我正在运行一个我在Eclipse中用Java编写的程序。该程序对于非常大的输入具有非常深的递归级别。对于较小的输入,程序运行正常,但是当输入大量输入时,出现以下错误:

Exception in thread "main" java.lang.StackOverflowError

这可以通过增加Java堆栈大小来解决,如果是的话,我该如何在Eclipse中做到这一点?

更新:

代码递归地遍历一个分析树,以建立一个数据结构。因此,例如,代码将使用分析树中的一个节点来做一些工作,并在节点的两个子节点上调用它自己,并将它们的结果组合起来以给出树的总体结果。

递归的总深度取决于分析树的大小,但当递归调用的数量达到1000时,代码似乎失败(没有更大的堆栈)。

此外,我很确定代码没有失败,因为它适用于小输入。

EN

回答 2

Stack Overflow用户

发布于 2018-03-19 16:33:18

打开应用程序的运行配置(运行/运行配置...,然后查找'Java应用程序'中的应用程序条目)。

参数选项卡中有一个文本框VM参数,输入-Xss1m(或最大堆栈大小更大参数)。默认值是512 kByte(SUN JDK 1.5 - 不知道它是否因供应商和版本而异)。

票数 0
EN

Stack Overflow用户

发布于 2018-03-19 17:37:56

它可以通过增加堆栈大小来解决- 但更好的解决方案是制定如何避免递归这么多。递归解决方案总是可以转换为迭代解决方案 - 这将使您的代码更加干净地扩展到更大的输入。否则,你真的会猜测提供了多少堆栈,这可能不是从输入中显而易见的。

顺便说一下,您是否确定它由于输入的大小而不是代码中的错误而失败?这个递归有多深?

会亲自尝试重写它,以避免使用递归。通常有一些Stack<T>“事情仍然存在”是移除递归的一个很好的起点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档