apache-flex 如何在Flex中加速图表渲染?

ma8fv8wu  于 2022-11-01  发布在  Apache
关注(0)|答案(2)|浏览(156)

我使用的是线序列图,但是当我添加一个新点时,当点的总数为~1200个点时,重新渲染会变得相当慢。(~600 MHz)。阅读Flex文档,了解如何加快渲染速度(关闭投射阴影、关闭filterData等等...)似乎没有帮助。我将图表绑定到了ArrayCollection(而不是我之前使用的手动更新的数组),而且它似乎没有任何更快的。Adobe的文档似乎让我相信,图表只查看自上次更新以来发生了什么变化,但我只是增加一点!如果他们的信息是正确的,为什么它需要明显更长的时间(5秒)来更新一点,当我有~1200点,然后当我只有2点(即时)?
FYI -当我向ArrayCollection中添加一个新点时,我必须执行“AC.refresh()”以使DataBinding获取新数据。有什么想法可以加快这一过程吗?

deyfvvtc

deyfvvtc1#

任何在flash/flex中有1200个点的绘图在重绘时都会执行得很慢。当你添加一个额外的点时,你会使整个系列无效。一旦图表无效,它会在下一个可用的机会重绘自己。这种重绘会很慢。恐怕没有办法绕过这个问题。
我想说的是为什么您需要在图表上同时显示1200个点。阅读此图表的任何人都无法接收所有信息。如果您需要显示这些点的趋势,则需要更改设计,以便显示平均值(根据Chris的评论)。您还可以使用其他策略。如果您看一下Fiat Eco Drive应用程序,我们选择在任何时间只显示最大范围。因此,即使我们可能有数百或数千个点,我们也只显示一定数量的点。
有很多其他的策略可以处理这个问题,你真的需要再看看图表的设计,然后重构实际的图表结构。

6rqinv9w

6rqinv9w2#

图表的渲染时间几乎都来自于渲染系列,所以如果你只是改变dataProvider并保持系列的数量,图表将从第二次渲染开始非常好。

相关问题