为了提高Flex应用程序的性能,Flex开发人员应该记住哪些主要关键点? 我想到的是:
在开发Flex3 / Flex4 / AIR应用程序时,您尝试遵循哪些关键准则以提高其性能?
答案 0 :(得分:7)
在我看来,很多人都有使用itemRenderers的性能问题。所以,我在这里的贡献是永远不要使用绑定itemRenderer。我只是通过重写他们的itemRenderers来使用dataChange事件而不是绑定来解决许多客户“内存泄漏”错误。
除此之外,我第二次@Wade Mueller关于尽可能避免嵌套容器的评论。
答案 1 :(得分:6)
虽然对于较轻的Spark Group来说这不太重要,但我总是尽量将嵌套容器的数量保持在最小值,并尽可能设置明确的位置/大小。具有动态大小的容器的复杂UI彼此嵌套导致必须发生大量(通常不必要的)测量。在视图之间切换时,这通常会导致严重滞后。
答案 2 :(得分:6)
我的清单:
P.S。 Автор,атырусскийязыкзнаешь? :)
答案 3 :(得分:1)
我考虑的主要事项,按重要性排序:
结合
创建大量额外代码,并且在未删除绑定时可能导致性能严重下降。例如,如果在应用程序中重用组件,则监听功能在整个应用程序流程中都处于活动状态,从而消耗不必要的内存和CPU周期。对于较大的应用程序,请考虑BindingUtils类。
请注意,您无法解除绑定大括号{myVariable}
验证(invalidate)调用是Flex中一些最昂贵的调用。使用时要小心。
validateNow();
了解Flex component lifecycle。覆盖这些方法可以简化实例化过程。
使用Vector对象。 More information
一些更基本的提示:
不要在循环中使用昂贵的操作。
for(var i:int = 0; i < massiveArray.length; i++)
在massiveArray
的情况下,一个非常大的数组,length()可能是一个昂贵的操作。分配var massiveArrayLength:int = massiveArray.length;
以提高效果。
http://jacksondunstan.com/有很多关于优化代码的文章。这个人是个天才。
避免创建不必要的变量,因为实例化很昂贵。如果可能,始终重用变量。
function getComplexValue():int {
var i:int = complexCalculation(); // returns int after calculating
return i;
}
相反,请立即返回。
function getComplexValue():int {
return complexCalculation();
}
如果您有权访问它,Flash Profile透视图就是您的朋友。它是一个功能强大的分析器,可以减少优化代码库所需的时间。