2010-05-03 51 views
0

例如,在Flex中顯示對象所用的測量時間

function showIt():void { 
    something.visible = true; 
} 

function init():void { 

    time1 = flash.utils.getTimer(); 
    showIt(); 
    time2 = flash.utils.getTimer(); 

} 

<mx:st id="something" visible="false"/> 
<mx:Button click="init()"/> 

在上面的代碼中,我要測量顯示ST在屏幕上所花費的時間。
是否足夠計算time2 - time1
或者我應該把一個事件處理程序渲染
或者其他方式?

回答

2

您應該試試Grant Skinner's AS3 Performance Test Harness

下面是在行動上一個簡單的演示(來自他的博客):

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 
performancetests.GraphicsTests (5 iterations) 
Testing different approaches for drawing.        
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 
method...................................................ttl ms...avg ms 
tare [3]              2  0.40 
drawPath             242 48.40 
drawPathShort            171 34.20 
fullPath             182 36.40 
reference             127 25.40 
shortReference            129 25.80 
withGraphics            1154 230.80 
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 

download他有一個叫做 「RenderTest.as」 級,這是他與描述:

表示渲染測試,該測試將指定的DisplayObject繪製到BitmapData實例需要多長時間。

我一直都在使用它,它很棒。

希望有幫助, 蘭斯

0

time2 - time1只會給你設置UIComponenttruevisible財產所需要的時間 - 這可能只是幾行代碼的。當UIComponent觸發enterFrame事件時,會定期發生真實呈現。我不知道有什麼方法可以衡量渲染某個特定組件的時間,我認爲你不能這樣做。

想到的一個想法是聽ENTER_FRAME並計算兩個連續事件之間的時間差(或者甚至更好:取平均值超過100幀)以獲得對整個渲染所花費的時間的估計階段。現在從舞臺上刪除特定組件後重復實驗。兩個時間點之間的差異會讓您瞭解渲染組件的時間。

1

使用Profiler可能會更有趣的比較這樣的操作。

相關問題