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 의 차이가 나는군요... (메모리는 한번만 테스트했 습니다.)
이러한 성능 이외에도 다른 장점 또한 있습니다. 그건 다음 포스팅에...