2013-04-02 2 views
1

AS3의 벤치마킹 애플리케이션을 돕기위한 도움말이나 링크가있는 사람이 있습니까? 나는 (잘하면) Benchmark.js 라인을 따라 뭔가를 찾고 있지만 플래시 및 AIR에 대한. 어떤 제안이라도 환영합니다.AS3의 벤치마킹 코드

답변

4

내가 종종 사용하는 것입니다 코드 실행 시간을 측정하는 빠른 방법이 당신에게 밀리 초 단위의 숫자를 줄 것이다

var start_time:int = getTimer(); 

someComplexCode(); 

trace("execution time: ", getTimer()-start_time); 

.

3

이것은 실제로 벤치마킹을위한 것이 아니지만, Adobe Scout은 환상적인 프로파일 러/성능 테스터입니다. 저는 웹용 SWF에서 Adobe AIR 응용 프로그램, 모바일 AIR 응용 프로그램에 이르기까지 모든 것을 위해 사용 해왔습니다.

0

당신은 아주 쉽게 벤치마킹 방법을 설정할 수 있습니다

function test(process:Function, repeat:int = 10):void 
{ 
    var time:Number = getTimer(); 
    while(--repeat >= 0) process(); 
    trace(getTimer() - time); 
} 

은과 같이 사용 :

// See how long it takes to create 50,000 Sprites and 
// add them to the DisplayList. 
test(function() 
{ 
    var sprite:Sprite = new Sprite(); 
    addChild(sprite); 

}, 50000); 
0

건물을 lostPixels' answer에, 파이썬의 timeit() 기능과 비슷한 기능을 만들었습니다. 이 함수는 지정된 반복 횟수에 대한 콜백 함수를 반복하고 가장 빠른 실행 시간을 반환합니다. 기본값은 1,000,000 회 반복입니다.

다음 테스트 프로그램은 내 컴퓨터의 391ms에서 실행되었습니다. trace() 문이 없으면이 테스트는 1ms 미만으로 실행됩니다.

TimeIt.as

package { 
    public class TimeIt { 
    import flash.utils.getTimer; 

    public static function timeIt(callback:Function, maxIterations:uint=1000000):int { 
     var start_time:int, duration:int, fastest_time:int = int.MAX_VALUE; 
     for (var i:int = 0; i < maxIterations; i++) { 
     start_time = getTimer(); 
     callback(); 
     duration = getTimer() - start_time; 
     if (duration < fastest_time) fastest_time = duration 
     } 
     return fastest_time; 
    } 
    } 
} 

Test.as

package { 
    public class Test { 
    public function Test() { 
     trace('Fastest Time:', TimeIt.timeIt(test, 10),'ms'); 
    } 

    public function test():void { 
     var k:int, m:int = 100; 
     for (var i:int = 0; i < m; i++) { 
     for (var j:int = 0; j < m; j++) { 
      k = m * i + j; 
      trace(k); 
     } 
     } 
    } 
    } 
} 

Main.mxml

,536,
<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    initialize="init(event)"> 
    <fx:Script> 
     <![CDATA[ 
      protected function init(event:Event):void { 
       new Test(); 
      } 
     ]]> 
    </fx:Script> 
</s:Application>