Node.js 코드 실행 시간 측정: console.time()과 console.timeEnd()
Node.js에서 코드의 실행 시간을 측정하는 것은 성능 최적화와 디버깅에 매우 유용합니다. 이를 위해 console.time()
과 console.timeEnd()
함수를 사용할 수 있습니다. 이 글에서는 이 두 함수를 사용하는 방법과 주의사항에 대해 알아보겠습니다.
console.time()과 console.timeEnd() 함수 소개
console.time(label)
함수는 실행 시간을 측정하기 위해 타이머를 시작합니다. label
은 타이머의 이름을 지정하는 문자열입니다. 이후 console.timeEnd(label)
함수를 호출하면 타이머가 종료되고, 실행 시간이 밀리초 단위로 출력됩니다.
기본 사용법
console.time('executionTime');
// 측정할 코드
console.timeEnd('executionTime');
위 코드에서 'executionTime'
은 타이머의 이름입니다. 동일한 이름을 사용하여 타이머를 시작하고 종료해야 합니다.
실제 사용 예제
for 루프 실행 시간 측정
let result = 0;
console.time('loopTime');
for (let i = 1; i <= 1000; i++) {
result += i;
}
console.timeEnd('loopTime');
console.log('1 부터 1000까지 더한 값은 : ' + result);
위 예제는 1부터 1000까지 반복하며 합계를 구하는 for
루프의 실행 시간을 측정합니다. console.timeEnd('loopTime')
이 실행되면 루프를 실행하는 데 소요된 시간이 콘솔에 출력됩니다.
▼ for 루프 실행 시간 측정 결과 화면

비동기 코드 실행 시간 측정
console.time('asyncTime');
setTimeout(() => {
console.timeEnd('asyncTime');
}, 1000);
비동기 코드의 실행 시간도 측정할 수 있습니다. 위 예제는 setTimeout
함수가 실행되는 데 걸리는 시간을 측정합니다.
▼ 비동기 코드 실행 시간 측정 결과 화면

주의사항 및 팁
- 각
console.time()
호출에는 고유한label
을 사용해야 합니다. 동일한label
을 사용하면 타이머가 덮어씌워질 수 있습니다. - 타이머 이름(
label
)은 의미 있게 지정하여 코드의 가독성을 높이는 것이 좋습니다. - 여러 번의 실행 결과를 비교할 때는 평균 시간을 계산하여 성능을 평가하는 것이 유용합니다.
고급 사용법
고해상도 시간 측정을 위해 process.hrtime()
을 사용할 수 있습니다. 이 방법은 나노초 단위의 정밀한 시간 측정을 제공합니다.
const start = process.hrtime();
// 측정할 코드
const end = process.hrtime(start);
console.log(`Execution time (hr): ${end[0]}s ${end[1] / 1000000}ms`);
결론
console.time()
과 console.timeEnd()
함수는 Node.js에서 코드의 실행 시간을 측정하는 데 매우 유용합니다. 이 두 함수를 활용하여 코드의 성능을 최적화하고, 효율적인 디버깅을 할 수 있습니다. 위에서 소개한 방법들을 사용하여 코드의 실행 시간을 정확하게 측정해 보세요.
참고 자료
관련 이전 게시글
- Node.js에서 비동기 처리: Callback, Promise, async/await 사용법
- Node.js 파일 읽기, 쓰기 방법: 동기식 vs 비동기식
- Node.js 이벤트 처리하기: on, once, removeListener 메소드
- Node.js 스트리밍 단위로 파일 읽고 쓰는 방법
- Node.js 패키지 관리자 NPM 사용법과 package.json 파일 역할
이 글이 도움이 되셨다면 공유 부탁 드립니다.