我正在尝试为我正在帮助开发的Roku应用程序优化html解析器。解析器当前花费太长时间来解析数据(8秒),它通过遍历遍历每个循环中遇到的每个标记的子节点来完成此操作。
parser (nodes):
for each node in nodes
if node.isTag
parser(node.nodes)
else if node.isBlock
text.push(node)
类似的东西,虽然更复杂!我假设它很慢,因为它是递归的,并且平台上没有尾递归优化等
我不太确定如何实现堆栈以从中移除递归 - 我尝试使用GoTo但似乎不起作用:/
任何人都可以提供一些见解,或者您是否认为问题可能是由递归引起的?
答案 0 :(得分:0)
你想要达到什么目的? 有些盒子很慢,只能进行一定程度的优化。如果您需要解析整个文档,通常需要花费的时间。我们有类似的问题,应用程序冻结了几秒钟,看起来它已经崩溃,但我们通过显示异步旋转图标来解决它。