TL; DR
以下のいずれかの方法でperformanceオブジェクトを宣言する。
const performance = require('perf_hooks').performance;
もしくは
const { performance } = require('perf_hooks');
詳細
var t0 = performance.now();
console.log( 'Do something' );
var t1 = performance.now();
console.log("Call to doSomething took " + (t1 - t0) + " milliseconds.");
上記のようなコードをNode.jsで実行するとReferenceError: performance is not defined
というエラーが出た。
Node.jsでPerformance APIを使用するにはPerformance Timing APIのドキュメントにあるようにpref_hook
モジュールをインポートしてあげる必要があるみたいでした。
発展
Chromeでは、わざわざインポートしなくてもperformance.now()
が使えるのにどうしてNode.jsではインポートする必要があるのか疑問に思いとさらに調べてみました。
どうやらNode.jsではPerformance APIはまだ試験的に実装されている段階なのでChromeとは違いglobalオブジェクト(Chromeの場合はwindow)にエクスポーズしていないみたいでした1。
globalにエクスポーズするプルリクも既に出ている2ので試験的な段階が終了すればNode.jsでもモジュールをインポートせずに使えるようになりそうです。