scaleform.minarto.com

직접 Event Model 을 만들어보자 - 1 본문

Core

직접 Event Model 을 만들어보자 - 1

미나토 2013. 4. 9. 16:06

성능 테스트를 보겠습니다.




1. 속도 테스트




첫번째 코드는 기존의 CLIK 을 가지고 돌린 코드입니다



	
import gfx.events.EventDispatcher;

EventDispatcher.initialize(this);

var o = {}
o.f = function($e){
}

addEventListener("kkk", o, "f");

var e = {type:"kkk"};
var s:Number = getTimer();
for(var i:Number = 0; i<100000; ++ i){
	dispatchEvent(e);
}

trace(getTimer() - s);



flash player 에서 3463, 2847, 2833, 2829, 2882 ms 가 나오는군요.


scaleform 4.0.16 에서는 


2113, 2149, 2639, 2190, 2819 ms 가 나옵니다.





두번째는 제 EventDispatcher 클래스로 돌린 결과입니다


import com.minarto.events.EventDispatcher;

EventDispatcher.initialize(this);

var o = {}
o.f = function($e){
}

addEventListener("kkk", o.f, o);

var e = {type:"kkk"};
var s:Number = getTimer();
for(var i:Number = 0; i<100000; ++ i){
	dispatchEvent(e);
}

trace(getTimer() - s);


flash player 에서 2191, 1777, 2178, 1802, 2160 ms 가 나옵니다


scaleform 4.0.16 에서는


1509, 1252, 1276, 1273, 1282 ms 가 기록되네요...



적게는 30% 에서 많게는 100% 까지의 속도 향상이 있음을 확인할 수 있습니다.




2. 메모리 테스트



이번엔 두 코드로 돌렸을 때의 메모리 차이도 보겠습니다.


코드 자체가 매우 단순하기 때문에 큰 차이은 아니지만 분명 차이가 있습니다




왼쪽이 기존의 CLIK 코드이고 오른 쪽이 새 코드입니다.








2.453 MB vs 2.448 MB 의 차이가 나는군요... (메모리는 한번만 테스트했 습니다.)






이러한 성능 이외에도 다른 장점 또한 있습니다. 그건 다음 포스팅에...