web-dev-qa-db-ja.com

ReferenceError:performance.now()を使用する場合、パフォーマンスは定義されません

エラーが発生しますReferenceError: performance is not defined関数呼び出しの実行時間を測定するために performance.now() を使用する場合:

export async function find(someId: string, ctx: context.IContext) {

      try {
        var t0 = performance.now();

        var res = someModel.find(someId, ctx.cookies);

        var t1 = performance.now();
        console.log("Call to find took " + (t1 - t0) + " milliseconds.");

        return res;
      } catch (err) {
        console.error(err);
        throw err;
      }
    }

これを修正する方法はありますか?

17
Elsban

私はこれがフロントエンドにタグ付けされていることを知っていますが、node.jsソリューションを探している人に遭遇した場合(私のように)、まずperf_hooksモジュールのパフォーマンスを要求する必要があります(ノード8.5以降で利用可能) 。

const {performance} = require('perf_hooks');
const t0 = performance.now();
...
31
gilmatic

「perf_hook」モジュールは複数の構成体(オブジェクト、関数、定数など)をエクスポートするため、使用する構成体を明示的に指定する必要があります。この場合、performance構文が必要です。宣言は次の2つの方法で行うことができます。

const performance = require('perf_hooks').performance;

または

const { performance } = require('perf_hooks'); //object destructuring
4
Lae Kettavong