我正试图使用日期类和跟踪语句从代码中解析我的代码速度。它运作得不好。
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);
}
}
}
这里的想法是能够比较编码函数的不同方式并确定哪一个更快。除非我在超级慢的计算机上,否则我不确定这是否可行,特别是对于非常短的功能。
答案 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;