代码之家  ›  专栏  ›  技术社区  ›  Christian Nunciato

外部接口性能:寻找一些最佳实践/技巧

  •  3
  • Christian Nunciato  · 技术社区  · 16 年前

    我在Windows应用程序的UI中使用flex 3(flash player作为嵌入式ActiveX控件),并通过外部接口在它们之间传递数据(主要是进入flex应用程序,而不是向外传递)。不过,我发现性能相当糟糕,尤其是对于较大的(即自定义)对象;我们调用的EI越多,传入的自定义对象越大,性能下降的难度就越大。

    我假设在序列化这些对象时会有很多开销,所以我想知道,有没有什么最佳实践可以用这种特殊的方式使用外部接口?关于这个主题的文档资料似乎还不多。

    比如说,将一大块XML作为字符串传递到播放器控件中,并使用flex进行解析,比将其作为自定义对象传递要好吗?需要与主机应用程序进行相对紧密集成的flex应用程序应如何在不牺牲性能的情况下最好地使用外部接口?EI性能是否是Adobe正在解决的问题?参与者9和10之间的实现有什么不同吗?我们应该避免什么样的事情来充分利用这个特性?

    事先谢谢!

    克里斯

    2 回复  |  直到 15 年前
        1
  •  4
  •   Christian Nunciato    16 年前

    为了与任何可能感兴趣的人分享答案,Adobe的非官方答案(在上个月的Max大会上由一些Adobe工程师确认)是,在ExternalInterface上整理超过30KB的数据将导致性能下降。小数据位,没问题——但是大数据块,无论类型如何,都会大大降低速度。

    显然这是一个已知的问题,而flash 10似乎没有提供太多的改进,不幸的是。因此,同时,一个可行的解决方案是为一些小事情使用外部接口,但要让Urlloader和XML或JSON解析器承担更大的负担。希望有帮助——如果有人遇到这个问题,需要更详细的指导,请随时与我直接联系。

        2
  •  4
  •   Prakash MP    15 年前

    布拉德·纽伯格似乎花了很多努力才弄明白这一点。他在

    http://codinginparadise.org/weblog/2006/02/how-to-speed-up-flash-8s.html