Node.js 코드 실행 시간 측정: console.time()과 console.timeEnd()

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에서 코드의 실행 시간을 측정하는 데 매우 유용합니다. 이 두 함수를 활용하여 코드의 성능을 최적화하고, 효율적인 디버깅을 할 수 있습니다. 위에서 소개한 방법들을 사용하여 코드의 실행 시간을 정확하게 측정해 보세요.

참고 자료

관련 이전 게시글

이 글이 도움이 되셨다면 공유 부탁 드립니다.

위로 스크롤