두달만에 쓰는 글 치고는 좀 심심하지만

간만에 팁을 올립니다. ㅎㅎ

무심코 다른 언어 습관때문에 숫자형을 문자형으로 바꿀 때 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() ㄱㄱ

+ Recent posts