简短问题:我有一个javascript,它在递归中非常深入。我如何增加堆栈大小以便我可以执行它(类似于Unix系统中的“ulimit -s unlimited”)?在浏览器中增加堆栈大小
长篇小说:我必须绘制图形,并使用Cytoscape JS(http://js.cytoscape.org/)和Dagre布局扩展(https://github.com/cytoscape/cytoscape.js-dagre)。绘图算法深入到递归中,我最终在Chrome中获得了“Uncaught RangeError:最大调用堆栈大小”和Firefox中的“太多递归”。如何将堆栈大小设置为无限或非常大(即像Unix系统中的“ulimit -s unlimited”),以便我可以绘制图形?
谢谢!
找到你确定你的算法是正确的?您是否计算了您在离开堆栈空间时的嵌套调用数?这是一个合理的数字吗? – trincot
是的,算法是正确的。事情是这个图有点大,绘图算法在递归中深入。但是,使用其他绘图算法(不使用递归),我可以很快地绘制它...因此,我认为如果我可以将堆栈大小增加到相当大的大小,我将能够绘制它。我搜索了,但找不到任何答案......在最糟糕的情况下,我需要修改Dagre算法,将其从递归更改为迭代...但我想检查是否有任何设置堆栈的方式浏览器的JavaScript引擎的大小限制。 – iwicopd2
添加更多的上下文,在这里你可以找到几个浏览器的堆栈大小限制:http://stackoverflow.com/questions/7826992/browser-javascript-stack-size-limit?rq=1。我只需要增加这个限制。 – iwicopd2