处理中的堆栈溢出

stack overflow under processing

我正在处理图像处理中。

在我的例子中,我必须递归地加载某些像素。

但总是显示错误信息:

由于等待数据包 387 时发生超时,事件线程崩溃。

我认为这是由于递归次数过多所致。 因为当我限制递归次数时,我可以 运行 正确地执行程序。

停止条件很好designed.I可以处理大部分图像,不需要运行太多的递归次数。

是否有任何方法可以调整堆栈大小以容忍这么多像素?

如果您只是询问是否有设置堆栈大小的方法,那么 google 是您的朋友。处理是用 Java 编写的,所以谷歌搜索 "java set stack size" 之类的东西是一个很好的起点。

事实上,这个问题已经在 Whosebug 上被问过多次了:

How to increase the Java stack size?

Java stack overflow error - how to increase the stack size in Eclipse?

Java Applet: Increase stack size

java set max stack size

Java default stack size

但是,由于您使用的是 Processing,因此您必须将其导出为 运行nable jar,或者 运行 来自 IDE 的代码,例如 eclipse。

更好的解决方案是弄清楚递归失控的原因并加以解决。增加堆栈大小只会有一点帮助 - 你会遇到同样的问题,只是图像稍大一些。