아래는 벤치마킹한 코드
<!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 함수가 더 빠름!
'프로그래밍 > JavaScript & jQuery' 카테고리의 다른 글
Google JavaScript Style Guide (0) | 2018.04.22 |
---|---|
[jQuery] 노드 찾기 (0) | 2018.01.17 |
[jQuery] – append(), appendTo(), html(), prepend(), prependTo(), text() , after() , before() (0) | 2018.01.16 |
KeyboardEvent Value (keyCodes, metaKey, etc) (0) | 2018.01.15 |
[jQuery] : attribute와 property 의 차이 (0) | 2018.01.15 |