Javascript 배열 검색 테스트 결과
layout: post title: javascript 배열 검색 테스트 결과 categories: javascript tags: javascript –
javascript 배열 검색 테스트 결과
for문으로 loop돌리는거랑 filter쓰는 방법 테스트함. 테스트 브라우저는 크롬이다.
500만개의 오브젝트를 array에 push해놓은 상태에서 제일끝에 있을것으로 예상 되는 데이터를 검색했는데 결과는 for문이 빨랐다.
데이터 입력시간 : 3.8초 for loop 평균 검색시간 : 418m filter 평균 검색 시간 : 552m
아래는 테스트 코드(검색시 “test_4999999” 으로 검색했다.)
<html lang='ko'>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type='text/javascript'>
function _debug_start_time(){
var date = new Date();
_debug_timer = date.getTime();
console.log("::::START DEBUGGING_ELAPSED TIME::::[" + _debug_timer + "]");
}
function _debug_cur_time(str){
var date = new Date();
var curtime = date.getTime();
console.log("::::NOW DEBUGGING_ELAPSED TIME::::[" + (curtime - _debug_timer) + "] - " + str);
_debug_timer = curtime;
}
var arr = [];
function start(){
_debug_start_time()
for (var i=0 ; i< 5000000;i++){
var obj = {};
obj.test1 = "test_" + i;
obj.test2 = "test0001_" + i;
obj.test3 = "test1010_" + i;
obj.test4 = "test9999_" + i;
arr.push(obj);
}
//console.log(arr);
_debug_cur_time("complete set array");
}
function search(){
var n = document.getElementById("n").value;
console.log("탐색할 문자열 : " + n);
_debug_start_time()
for (var i = 0 ;i<arr.length;i++){
if (arr[i].test1 == n){
console.log("발견");
break;
}
}
_debug_cur_time("done");
}
function search2(){
var n = document.getElementById("n").value;
console.log("탐색할 문자열 : " + n);
_debug_start_time()
var result = arr.filter(function(item){
return item.test1 == n;
});
_debug_cur_time("done");
}
</script>
</head>
<body>
<button onclick='start()'>시작</button>
<input type='text' id='n'><button onclick='search()'>탐색</button>
<button onclick='search2()'>탐색2</button>
</body>