두달만에 쓰는 글 치고는 좀 심심하지만
간만에 팁을 올립니다. ㅎㅎ
무심코 다른 언어 습관때문에 숫자형을 문자형으로 바꿀 때 toString() 을 썼는데
소연이가 toString() 대신에 String() 을 쓰길래
어?
해서 한 번 테스트를 해보았더니
생각보다 꽤 큰 차이를 보이더군요.
일단 테스트 코드갑니다.
var i: int;
var count: int = 100000;
i = count;
var n: Number = 150;
var time: int = getTimer();
while( i-- )
n.toString();
time = getTimer() - time;
trace( time );
i = count;
time = getTimer();
while( i-- )
String( n );
time = getTimer() - time;
trace( time );
|
|
테스트 코드는 위와 같고 제 컴퓨터에서 테스트한 결과들을 보여드리겠습니다.
var n: Number = 150
toString() 43ms
String() 32ms
(34% faster)
var n: Number = 49394929
toString() 51ms
String() 36ms
(41% faster)
var n: Number = 23.20154
toString() 231ms
String() 221ms
(4.5% faster)
var n: Number = -1548
toString() 45ms
String() 34ms
(32% faster)
var n: Number = NaN
toString() 29ms
String() 17ms
(70% faster)
var n: int = 1823422;
toString() 54ms
String() 35ms
(54% faster)
var n: int = -3422;
toString() 52ms
String() 33ms (57% faster)
var n: uint = 548422;
toString() 53ms
String() 34ms
(55% faster)
오옷!!!
전체적으로 String()이 약 20~50% 빠른걸 알 수 있습니다.
도대체 toString() 내부와 String() 내부는 어떻게 다르기에 이렇게 다른걸까요?
흠...
어쨌든 앞으로는 String() ㄱㄱ