views:

121

answers:

4

For e.g.

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()"/>

In the above code, I want to measure the time taken to display st on screen.
Is it enough to compute time2 - time1?
Or should I put an event handler on render?
Or some other way?

A: 

time2 - time1 will just give you the time required to set the visible property of the UIComponent to true - which might be just a couple of lines of code. The real rendering happens at regular intervals when the UIComponent fires enterFrame event. I don't know of any method to measure the time taken to render one particular component, and I don't think you can do that.

One idea that comes to mind is to listen for ENTER_FRAME and calculate the time difference between two consecutive events (or even better: take average over, say, 100 frames) to get an estimate of the time taken for rendering the whole stage. Now repeat the experiment after removing the particular component from stage. The difference between the two timings will give you an idea of the time taken to render your component.

Amarghosh
+1  A: 

you can draw it into a BitmapData to force rendering and measure the time required.

greetz
back2dos

back2dos
A: 

Using the Profiler will probably be more interesting to compare such operations.

Theo.T
+2  A: 

You should try out Grant Skinner's AS3 Performance Test Harness.

Here's a simple demo of it in action (from his blog):

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
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
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

In the download he has a class called "RenderTest.as", which he describes with:

Represents a render test, which times how long it takes to draw a specified DisplayObject to a BitmapData instance.

I use it all the time, it's great.

Hope that helps, Lance

viatropos