performance. now()는 DOMHighResTimeStamp("고해상도 타임스탬프")를 반환하는 Performance API 메서드이며, 간단히 말해 두 시점 사이의 분수 부분에서 밀리초 단위의 시간 값이다.
performance.now()의 가장 일반적인 사용 사례는 코드 실행 시간을 모니터링하는 것입니다. 실제 사용 사례에는 비디오, 오디오, 게임 및 기타 미디어의 벤치마킹과 성능 모니터링이 포함될 수 있다.
그렇다면, 어떻게 사람을 구조할까요? 예를 들어, 특정 기능이 실행되는 데 걸리는 시간을 모니터링하려고 합니다.
함수를 실행하기 전에 메소드를 한 번 호출한 다음 함수 자체를 실행하고 performance.now()
를 다시 호출한다. performance.now()
의 두 인스턴스는 페이지 로드로부터 경과된 시간을 반환하고 시작점이 같기 때문에 두 함수 호출 간의 차이만 구하면 코드가 실행되는 데 얼마나 걸렸는지 알 수 있습니다.
const startTime = performance.now();
for (let i = 0; i < 100; i++) {
console.log("Hi!");
}
const finishTime = performance.now();
console.log(`It took me ${finishTime - startTime} milliseconds to say "hi" a 1000 times!`
);
Date.now()가 이러한 목적으로 사용되는 것도 보셨을 것입니다. 성능 모니터링에 대한 유효하고 일반적인 접근 방식이지만 한 가지 주의사항이 있습니다.
performance.now()와 Date.now()
의 가장 큰 차이점은 Date.now()
가 Unix 시간(UTC, 1970년 1월 1일 00:00:00부터 경과된 시간)과 관련하여 타임스탬프를 반환한다는 것입니다. 이것이 우리가 잠재적으로 문제에 직면할 수 있는 부분이다. 이 날짜 이후 시간이 얼마나 경과했는지 자바스크립트는 어떻게 알 수 있나요? 그건 시스템 시계에서 얻습니다. 그러나 시스템 시계는 우리 기계에 존재하기 때문에 수동 또는 프로그래밍 방식으로 조정이 가능하므로 시간 정밀도를 보장할 수 없습니다.
이럴 때는 performance.now()가 더 신뢰적이다. 문서의 수명이 시작된 이후 경과한 밀리초 수를 반환하므로 역사의 특정 시점이나 시스템에 의존하지 않습니다.
간단한 참고: 보안상의 이유로 performance.now()에서 반환되는 시간은 반올림되므로 예측 가능성이 낮아질 수 있습니다. 하지만 개인 테스트에 사용한다면 부정확도는 크게 문제가 되지 않습니다.
performance.now()
는 크롬 24, 파이어폭스 15, IE10을 포함한 모든 최신 브라우저에서 완벽하게 지원됩니다.
'프로그래밍' 카테고리의 다른 글
내 인생을 바꾼 경험 (5부) (0) | 2022.01.13 |
---|---|
Shiny 앱을 Windows용 독립 실행형 데스크톱 앱으로 변환 (0) | 2022.01.13 |
더 나은 프로그래머가 되기 위해 (1) | 2022.01.13 |
'미친 기술 채용 시장' (0) | 2022.01.13 |
Angular의 모든 요청 오류 탐지 (0) | 2022.01.13 |
댓글