본문 바로가기

프로그래밍/JavaScript & jQuery

[JavaScript] 숫자에 콤마 찍기 함수 벤치마킹


아래는 벤치마킹한 코드


<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<title>Benchmark setComma function</title>

<script type="text/javascript">

function numberWithCommas(x) {

    return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");

}


function setComma(str) {

var temp_str = String(str);


for(var i = 0 , retValue = String() , stop = temp_str.length; i < stop ; i++)

retValue = ((i%3) == 0) && i != 0 ? temp_str.charAt((stop - i) -1) + "," + retValue : temp_str.charAt((stop - i) -1) + retValue;


return retValue;

}

function benchmarkCode(func,param,count){

var start = new Date().getTime();

for (i = 0; i < count; ++i) {

window[func](param);

}

var end = new Date().getTime();

var elapsedTime = end - start;

return func+" : "+elapsedTime+"ms";

}


$(document).ready(function() {

var strMoney = "999999999999";

var testCount = 500000;

//numberWithCommas(strMoney);

alert(benchmarkCode("numberWithCommas",strMoney,testCount));

alert(benchmarkCode("setComma",strMoney,testCount));

});


</script>

</head>

<body>


</body>

</html>


numberWithCommas는 스택오버플로우에서 보고 추가했던 것인데 결과는 setComma 함수가 더 빠름!