私が開発を支援している Roku アプリケーションの html パーサーを最適化しようとしています。パーサーは現在、データの解析に時間がかかりすぎて (8 秒)、for each ループ内で検出された各タグの子を再帰的にトラバースすることでこれを行います。
parser (nodes):
for each node in nodes
if node.isTag
parser(node.nodes)
else if node.isBlock
text.push(node)
はるかに複雑ですが、それに似たものです!再帰的であり、プラットフォームなどに末尾再帰の最適化がないため、遅いと思います
これから再帰性を取り除くためにスタックを実装する方法がよくわかりません-GoToを使用してみましたが、うまくいかなかったようです:/
誰かが洞察を提供できますか、または問題が再帰によって引き起こされている可能性があると思いますか?