例如
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 ?
或者我应该在渲染上放置事件处理程序?
或者其他一些方式?
答案 0 :(得分: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实例所需的时间。
我一直都在使用它,这很棒。
希望有所帮助, 兰斯
答案 1 :(得分:1)
你可以draw it into a BitmapData强制渲染并测量所需的时间。
格尔茨
back2dos
答案 2 :(得分:1)
使用Profiler可能会比较这些操作更有趣。
答案 3 :(得分:0)
time2 - time1
只会为您提供将visible
的{{1}}属性设置为UIComponent
所需的时间 - 这可能只是几行代码。当true
触发UIComponent
事件时,实际呈现会定期发生。我不知道有任何方法来衡量渲染一个特定组件所需的时间,我认为你不能这样做。
想到的一个想法是听取enterFrame
并计算两个连续事件之间的时间差(或甚至更好:取平均值超过100帧)以估算所需时间渲染整个舞台。现在从舞台上删除特定组件后重复实验。两个时间之间的差异将让您了解渲染组件所需的时间。