개발공작소
728x90
반응형

 

 

 

javascript에서 로직의 수행시간을 측정하는 방법

 

console.time, console.timeEnd()함수를 사용하는 방법

 

정적 console.time()메서드는 작업에 소요되는 시간을 추적하는 데 사용할 수 있는 타이머를 시작합니다. 각 타이머에 고유한 이름을 지정하고 특정 페이지에서 최대 10,000개의 타이머를 실행할 수 있습니다. 동일한 이름으로 호출하면 console.timeEnd()브라우저는 타이머가 시작된 이후 경과된 시간을 밀리초 단위로 출력합니다. -MDN

 

기본문법

console.time()
//...로직
//...로직
//...로직
console.timeEnd()
//console.time()을 시작점으로 해서 console.timeEnd()까지의 시간을 출력해줌

 

 

샘플코드

const promise1 = async () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("통신 성공1");
    }, 2000);
  });
};

const promise2 = async () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("통신 성공2");
    }, 2000);
  });
};

const promise3 = async () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("통신 성공3");
    }, 2000);
  });
};

const promiseArr = [promise1, promise2, promise3];

const callPromise = async () => {
  console.time(); //시간측정 START
  for (const promise of promiseArr) {
    const result = await promise();
    console.log(result);
  }
  console.timeEnd(); //시간측정 END => 여기서 시간 찍어줌
};

callPromise();

/*
*통신 성공1
*통신 성공2
*통신 성공3
*default: 6.019s
*/

 

 

샘플코드를 보면 실행까지 2초가 걸리는 프로미스 객체 3개를 담은 배열이 있고,

for... of를 통해 병렬로 처리 하지않아 각 프로미스가 끝날때까지 전부 기다렸다

 

예상대로 2초가 3개 있으니 6초가 찍혔다... 정확히는 6.019초....

 

이외에도 new Date 생성자를 통해 계산하는 방법도 있지만

javascript자체에 있는 내장함수인 console.time은 그냥 찍기만 해서 편하다..

 

따로 정리는 안했지만 아래와 같은 방법도 있으니 필요한 사람은 검색해서 찾아보자..

 

1. new Date()를 사용하는 방법

2. performance.now()를 사용하는 방법

 

 

 

728x90
반응형
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!