萬盛學電腦網

 萬盛學電腦網 >> 圖文處理 >> Flash教程 >> Flex應用程序的性能優化

Flex應用程序的性能優化

眾所周知,flex應用程序存或多或少地存在性能方面的問題。特別是企業級大數量的應用程序,通常的解決辦法是分模塊加載,分時加載數據等措施來解決。下面我們來談一談代碼級別的優化:

1.盡可能減少程序的不必要運算。如下兩種表達式:

var a:unit = b+(1024-200)/2;   
var a:unit = b+412; 
很明顯下面的那個表達式運算更快。

2.盡可能地采用乘法運算來代替除法運算。如下兩個表達式:

result = num / 4;   
reuslt = num * 0.25;
經過統計工具計算,乘法比除法能節約150ms的時間。

3.盡可能使用強類型。比如:

var pt:Object = {x:x,y:y};   
var pt:Point = new Point(x,y); 

4.使用隱式類型轉換。比如,

var pt:Point = points[i] as Point;   
var pt:Point = points[i]; 
第二個的表達式使用的隱式類型轉換,這樣能節省開銷。

5.強制轉換有時要比用as轉換好用。如:

pt = points[(i*2) as unit];   
pt = points[uint(i*2)]; 

6.設置條件表達式的優先級。如:

if(expensiveTest() && usuallyFalse)   
if(usuallyFalse && expensiveTest())
在與運算時,應將在多數情況下為false的表達式放在前面(如第二個表達式的寫法)。

7.for循環語句中的循環條件值應為一個固定值。如:

for (var i=0; i<arr.length; i++)   
for (var i=0; i<l; i++) 
應采用第二種寫法,將arr的length屬性值存放到一個變量中去。

8.回調事件要比單獨派發的事件要快,更比冒泡的事件快。

9.盡量減少使用try...catch來拋出異常信息。如:

try {isNull.x = 3;} catch(e:*) {}   
if(isNull) {isNull.x = 3;} 
多采用第二種方法,來減少異常。

10.使用removeEventListener方法來清除閒置的事件偵聽者。

copyright © 萬盛學電腦網 all rights reserved