INDEX
Preview
저번 프로그래밍 문제 포스팅(https://sieon-dev.tistory.com/120)에서 봤듯이 Javascript 에서 사용하는 여러 반복문이 각각 성능이 다르다는 걸 알 수 있었습니다.
JS에는 for, forEach, map, reduce, while, do while, for in, for of 등 다양하게 반복문을 구현할 수 있는데 이번 글에서는
간단하게 for 과 while 문의 실행시간을 비교해보려고 합니다.
Methodology
function for_test() {
let sum = 0;
for (let i = 0; i <= 100000000; i++) {
sum += i;
}
return;
}
function while_test() {
let sum =0;
let i=0;
while(i<100000000){
sum+=i;
i++
}
return;
}
let start = performance.now(); // 시작
while_test();
let end = performance.now(); // 종료
console.log("for test : ", end - start); // 경과시간(밀리초)
start = performance.now(); // 시작
for_test();
end = performance.now(); // 종료
console.log("while test : ", end - start); // 경과시간(밀리초)
간단하게 1부터 1억까지의 합을 구하는 함수의 실행시간을 비교해 봤는데
for test : 109.9753999710083
while test : 113.45970010757446
---------------------
for test : 111.72530007362366
while test : 118.72339987754822
----------------------
for test : 109.90000009536743
while test : 115.75189995765686
3차례 정도 돌려봤을 때 정말로 for 문의 실행시간이 while 문보다 빨랐습니다.
원인으로는 while 문은 iterator 를 실행 후 조건 검사를 한번 더 하기 때문이라고 합니다.
번외로 요즘 공부를 시작한 golang에서는 실행 속도가 얼마나 되는지 궁금해 돌려봤는데 역시나
45.3525 ms로 2~3배 정도 가량 빠르더군요..ㅎㅎ
//golang code
package main
import (
"fmt"
"time"
)
func main() {
start := time.Now()
sum := 0
for i := 0; i < 100000000; i++ {
sum += i
}
end := time.Since(start)
fmt.Println(end)
}
728x90
'코드 기록' 카테고리의 다른 글
Why & What (is) Spidergen ? (0) | 2024.03.30 |
---|---|
Restudy Series. Javascript (2) (0) | 2024.03.30 |
Restudy Series. Javascript (1) (0) | 2024.03.30 |
[개역개정 한글 성경] JSON 파일 다운로드 (0) | 2023.11.29 |
Javascript console.log 조심해야겠어요 (0) | 2023.11.02 |