0

我正在尝试为我正在帮助开发的 Roku 应用程序优化 html 解析器。解析器当前解析数据花费的时间太长(8 秒),它通过递归遍历每个循环中遇到的每个标签的子节点来做到这一点。

parser (nodes):
 for each node in nodes
   if node.isTag
     parser(node.nodes)
  else if node.isBlock
     text.push(node) 

类似的东西,虽然更复杂!我假设它很慢,因为它是递归的,并且平台上没有尾递归优化等

我不太确定如何实现堆栈以从中消除递归性-我尝试过使用 GoTo 但这似乎不起作用:/

任何人都可以提供一些见解,或者您是否认为问题可能是由递归引起的?

4

1 回答 1

0

你想达到什么目的?有些盒子很慢,您只能应用一定数量的优化。如果您需要解析整个文档,通常需要它所需要的。我们遇到了类似的问题,应用程序冻结了几秒钟,看起来像是崩溃了,但我们通过显示异步旋转图标来解决它。

于 2015-10-08T19:57:49.973 回答