私はアルゴリズムを持っています。アルゴリズムは比較的深く再帰的に動作します。その結果、スタックの最大サイズが例外を超え、最終的に(無限の再帰なしに)発生します。Javascriptスタックがいっぱいになったときを知るには?
私のアルゴリズムは、しかし、大規模な、このたびは遅く実行をやって、できるだけ早く使用して非同期的に進めるために、自分自身を分割することができます。私は現在のスタック使用率を知るための(速い)方法を持っていますので、私のアルゴリズムは90%のように下回っていれば同期的に継続することができます。私はこの価値が内部的になければならないことは知っていますが、それにアクセスする方法はありますか?
一方、エラーを超えた最大スタックサイズをキャッチすると思いますが、私はread hereですが、これは不可能です(この例外をスローすると、実際にスタックサイズが縮小され、古いスタックエントリはまだこの???を行うために無傷でなければなりません)
もちろん一つの方法は、私のすべての機能を通じてカウンタ変数を渡すことであろうが、これは厄介です。また、スタックの大きさとスタックフレームの大きさがわからないため、スタックのカウンタ値が90%になっているかどうかは不明です。
だから、実際には、彼は彼が必要とする情報へのアクセスがあった場合はJavaScriptは、プログラマがそれを避けることができていても、その場合には失敗するために生まれているようだ - どこかに存在しているが、未知の理由のために秘密に?
あなたの仕事をご提示ください。これは、JavaScriptのインタプリタがどのように動作しているかではなく、アルゴリズムの問題のようです。これは何をしていますか?ノードまたはブラウザ?あなたのアルゴは何を達成しようとしていますか?これらの詳細が必要です。 – Soviut
私は "アルゴリズム"を提供できません - データを処理し、データに応じて再帰的にビルドします。私のアルゴリズムに問題はありません。実際にはデータ構造体が十分深くネストされている場合、スタックは無限の再帰を必要とせずに実行されます。 –
再帰が深くなってスタックがオーバーフローしている場合は、アルゴを書き直してショートテール再帰を行う必要があります。 – Soviut