我正在尝试为我正在帮助开发的 Roku 应用程序优化 html 解析器。解析器当前解析数据花费的时间太长(8 秒),它通过递归遍历每个循环中遇到的每个标签的子节点来做到这一点。
parser (nodes):
for each node in nodes
if node.isTag
parser(node.nodes)
else if node.isBlock
text.push(node)
类似的东西,虽然更复杂!我假设它很慢,因为它是递归的,并且平台上没有尾递归优化等
我不太确定如何实现堆栈以从中消除递归性-我尝试过使用 GoTo 但这似乎不起作用:/
任何人都可以提供一些见解,或者您是否认为问题可能是由递归引起的?