簡短問題:我有一個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