6

短い質問: 再帰が非常に深い JavaScript があります。実行できるようにスタック サイズを増やすにはどうすればよいですか (Unix システムの「ulimit -s unlimited」など)。

長い話: グラフを描画する必要があり、Cytoscape JS ( http://js.cytoscape.org/ ) と Dagre レイアウト拡張機能 ( https://github.com/cytoscape/cytoscape.js-dagre ) を組み合わせて使用​​します。描画アルゴリズムは再帰的に深くなり、Chrome では「Uncaught RangeError: Maximum call stack size exceeded」、Firefox では「再帰が多すぎます」というメッセージが表示されます。グラフを描画できるように、スタック サイズを無制限または非常に大きく (つまり、Unix システムの "ulimit -s unlimited" のように) 設定するにはどうすればよいですか?

ありがとうございました!

4

3 に答える 3

1

Chrome には次のフラグがあります。

chromium-browser --js-flags="--stack-size 2048"

ただし、上記のコマンドを実行する前に実行することも必要ulimit -s unlimitedです。そうしないと、深く再帰的な Javascript コードによって Chrome がクラッシュします。

于 2018-04-01T18:23:05.957 に答える
0

ブラウザーでスタック サイズを変更することはできませんが、トランポリンと呼ばれるトリックを使用できます。

ここで実際のコード ソリューションを見つけることができます。

JavaScriptでトランポリンを理解するには?

于 2016-05-31T14:28:12.930 に答える