ActionScript - 从代码中描述脚本的速度?

时间:2010-11-15 10:49:30

标签: actionscript-3 performance profiler

我正试图使用​​日期类和跟踪语句从代码中解析我的代码速度。它运作得不好。

package
{   
import flash.display.Sprite;

public class Test extends Sprite
    {
    public function Test()
        {
        var now:Date = new Date();
        var profileSpeedMark:Number = now.getMilliseconds();

        var myArray:Array = new Array();
        for (var i:Number = 0; i < 1000000; i++)
            myArray.push(Math.random());

        var profileSpeedResult:Number = now.getMilliseconds() - profileSpeedMark;
        trace(profileSpeedResult);
        }
    }
}

这里的想法是能够比较编码函数的不同方式并确定哪一个更快。除非我在超级慢的计算机上,否则我不确定这是否可行,特别是对于非常短的功能。

2 个答案:

答案 0 :(得分:3)

在flash.utils包中使用getTimer()函数很方便。

var t0:Number = getTimer();
computeSomeThing();
var t1:Number = getTimer();
trace("Time Elapsed: " + String(t1 - t0));

答案 1 :(得分:2)

您在示例代码中执行操作的方式的问题是Date类具有固定值 - 您将测试之前的时间与测试之前的时间进行比较。尝试在测试后实例化另一个Date对象并从中获取时间:

var before:Date = new Date();
test();
var after:Date = new Date();
var timeTaken:Number = after.time - before.time;