window.performance.now () nodejs에서 동등합니까?
질문은 간단하다고 생각합니다.
nodejs V8 엔진의 window.performance.now ()와 유사한 것을 찾고 있습니다.
지금은 다음을 사용하고 있습니다.
var now = Date.now();
//do some processing..
console.log("time elapsed:", Date.now() - now);
그러나 여기에 정의 된 내용 때문에 window.performance.now ()가 날짜를 사용하는 것보다 훨씬 정확하다는 것을 읽었습니다 .
저자가 브라우저에서 타이밍 API를 선호하는 이유 중 세 가지가 노드 상황에 직접적으로 적용되지 않는 것 같고, 네 번째 인 Javscript 시간의 부정확성은 2008 년의 기사를 인용합니다. 특히 "HTML5"앱을 지원하기 위해 모든 엔진이 수행 한 최근의 성능 개선 사항을 고려할 때 Javascript 성능 특성과 관련하여 이전 자료에 의존하지 않도록 강력히주의 할 것입니다.
그러나 귀하의 질문에 대한 답변으로 process.hrtime()
업데이트 : present
패키지 (를 통해 사용 가능 npm install present
)는 hrtime
원하는 경우 약간의 설탕을 제공 합니다.
노드 v8.5.0 추가 한 성능 타이밍 API 포함, performance#now()
예를
const {
performance
} = require('perf_hooks');
console.log('performance', performance.now());
다음 process.hrtime()
은 마이크로 초 대신 밀리 초를 반환 하는 단축키입니다 .
function clock(start) {
if ( !start ) return process.hrtime();
var end = process.hrtime(start);
return Math.round((end[0]*1000) + (end[1]/1000000));
}
용법:
var start = clock();
// do some processing that takes time
var duration = clock(start);
console.log("Took "+duration+"ms");
"Took 200ms"와 같은 것을 출력합니다.
이건 어떤가요?
console.time('FooTimer');
// do the work
console.timeEnd('FooTimer');
NextLocal의 답변을 기반으로 한 process.hrtime () 이있는 Typescript 버전은 다음과 같습니다 .
class Benchmark {
private start = process.hrtime();
public elapsed(): number {
const end = process.hrtime(this.start);
return Math.round((end[0] * 1000) + (end[1] / 1000000));
}
}
export = Benchmark;
용법:
import Benchmark = require("./benchmark");
const benchmark = new Benchmark();
console.log(benchmark.elapsed());
요약하고 사용을 피하려면 perf_hooks
const performance = {
now: function(start) {
if ( !start ) return process.hrtime();
var end = process.hrtime(start);
return Math.round((end[0]*1000) + (end[1]/1000000));
}
}
console.log('performance', performance.now());
참조 URL : https://stackoverflow.com/questions/23003252/window-performance-now-equivalent-in-nodejs
'IT박스' 카테고리의 다른 글
5 시간보다 오래된 객체에 대한 Django 쿼리 날짜 시간 (0) | 2021.01.10 |
---|---|
bootstrap-responsive.css는 어디에 있습니까? (0) | 2021.01.10 |
REST와 RPC 간의 웹 서비스 차이점 (0) | 2021.01.10 |
여러 레코드를 삽입하고 ID 값을 얻는 방법은 무엇입니까? (0) | 2021.01.10 |
스크립트를 실행하여 ipython 시작 (0) | 2021.01.10 |