데이지랑 노가리노가리 하다가

진숙이 나이가 24살인지 25살인지 둘다 가물가물해서

24.5살로 쇼부 보고 Math.round( 24.5 ) = 25살로 결정한 것을 계기로

(뭔 계기가 -_-;;;)

예전에 어디선가 반올림할때 Math.round( n ) 보다 Math.floor( n + 0.5 ) 가 빠르다는 것을 본거 같아서

생각난 김에 한번 해봤습니다.

var len: int = 1000000;

var time: int = getTimer();

while( len-- )
     //floor();     // 237, 239, 232, 233, 236 = 235.4
     round();     // 247, 240, 238, 238, 238 = 240.2

trace( getTimer() - time );

function floor(): void
{
     var a: int = Math.floor( 1.5 + 0.5 );
}

function round(): void
{
     var a: int = Math.round( 1.5 );
}

100만번 돌린 결과

floor( n + 0.5 ) 는 235.4 ms 가 나왔고

round( n ) 는 240.2 ms 가 나왔네요.

큰 차이는 아니겠지만

굳이 비율로 따지자면 약 1.9% floor( n + 0.5 ) 가 더 빠른걸로 측정이 됐네요.

측정 방법이나 구문이 잘못된 점 있으면 알려주세요^^



p.s) 이런거 재밌어~



+ Recent posts