如何确定调用函数x次所需的时间

时间:2017-01-18 02:55:19

标签: javascript actionscript-3

我正在使用函数来确定运行另一个函数所需的时间,这样我就可以看到我的代码运行了多长时间。

以下是代码:

public function profileCall(repeatCount:int, method:Function, ...args):String {
    var time:int = getTimer(); // returns time in milliseconds since app start
    var average:Number;

    for (var i:int; i < repeatCount; i++) {
        method.apply(null, args);
    }

    time = getTimer()-time;
    average = repeatCount>0? time/repeatCount:0;

    return average;
}

var result:String = profileCall(myCode, 1000);
trace("Time taken: " + result); // Time taken: .01

我认为它有效但后来我注意到在一次测试中我是否运行了100次它说0.1。如果我运行它1000它说.01,在10000它说.001。

它是否变得更准确或是否存在误判?我知道在多次调用时CPU会缓存调用,这可以减少执行时间,但数字看起来不正确。请原谅我,如果这是一个基本问题,那就是漫长的一天。

注意:语言无关紧要。

1 个答案:

答案 0 :(得分:1)

你做得对,但是......在大多数情况下,AS3并不那么慢

var aTime:int = getTimer();

// ... do something

trace(getTimer() - aTime);
由于此操作的精度较低,

将花费0到1毫秒。为了评估某些代码块的性能,您可能需要在1 000 000甚至10 000 000次迭代的循环中运行它并测量整个执行时间。