[TypeScript] Performance¶
正確なパフォーマンス測定¶
performance.now()で細かな精度の時間を取得できる。
計測前と計測後に値をとって引き算した結果のミリ秒を見るのが一番単純。
Date.nowは1ミリ秒の精度だが、performance.nowは0.005ミリ秒の精度と高品質.
nodejsの場合¶
perf_hooksにperformanceがあるのでそれを使う。
const pref = require('perf_hooks').performance;
const startTime = pref.now();
let sum = 0
for (let i = 0; i < 1000000; i++) {
sum = sum + 1
}
const endTime = pref.now();
console.log(`100万回: ${Math.round(endTime - startTime)}ミリ秒`);
普通にperformanceってやると問題あり
@types/nodeがあるとビルドでできるが、実際はperformanceがない- nodejsだと
perf_hooks.performanceだから lib.dom.d.tsでperformanceが認識されてしまう- nodejsだとDOM使わないので無効にしたいけど分からなかった...
tsconfig.jsonのlibに["dom"]としてもダメだった
- nodejsだと
ブラウザの場合¶
windowにperformanceがあるのでそれを使う。