자바스크립트 for loop 속도 비교

Myungho·2020년 4월 25일
6

목차

  • for loop
  • optimized for loop
  • for - of
  • for - in
  • forEach
  • 결론

for loop

let start = new Date().getTime();
let arr = Array(10000000).fill().map((_, i) => i);
let sum = 0;
for(let i=0; i<arr.length; i++) {
  sum += arr[i];
}
let end = new Date().getTime();

console.log(end - start);

// 1806

optimized for loop

let start = new Date().getTime();
let arr = Array(10000000).fill().map((_, i) => i);
let sum = 0;
for(let i=0, j=arr.length; i<j; i++) {
  sum += arr[i];
}
let end = new Date().getTime();

console.log(end - start);

// 1066

for - of

let start = new Date().getTime();
let arr = Array(10000000).fill().map((_, i) => i);
let sum = 0;
for(let val of arr) {
    sum += val;
}
let end = new Date().getTime();

console.log(end - start);

// 1317

for - in

let start = new Date().getTime();
let arr = Array(10000000).fill().map((_, i) => i);
let sum = 0;
for(let idx in arr) {
    sum += arr[idx];
}
let end = new Date().getTime();

console.log(end - start);

// 7826

forEach

let start = new Date().getTime();
let arr = Array(10000000).fill().map((_, i) => i);
let sum = 0;
arr.forEach(e => sum += e);
let end = new Date().getTime();

console.log(end - start);

// 1138

결론

optimized for loop > for - of = forEach > for > for - in

for - in의 속도가 상당히 느리므로 사용을 지양하는 것이 좋을 것 같습니다.
optimized for loop가 성능은 가장 우수하나 forEach는 코드를 간략히 사용할 수 있으므로 특별한 상황이 아니라면 forEach를 사용하는게 가장 좋은 선택이 될 것 같습니다.

profile
자바스크립트로 개발하는 새내기입니다.

0개의 댓글