4

mocha.jsすべてが正常に機能することを確認するために実行するテストスイートがあります。必要なモジュールごとに、テスト時間が約100ミリ秒長くなっていることに気付きました。そして、それは8GBのメモリを備えた強力なクアッドコアマシン上にあります。

呼び出しの実際のコストはrequireどれくらいですか?それはアプリケーションのパフォーマンスに影響しますか、それともテストのパフォーマンスにのみ影響しますか?

ノードのバージョンは0.8.11、それが関連する場合です。

4

1 に答える 1

7

Requireは静的分析中に実行されないため、非常にコストがかかります。同期的に実行するいくつかのことを実行する必要があり、プログラムを未定義の期間ブロックします。

  • パス検索、統計、オープンなど、多くのファイル操作が発生する可能性のある、必要なモジュールを見つける必要があります。
  • javascriptファイルを読み取り、解析し、その一部をコンパイルする必要があります。実行中に、遭遇する依存関係が必要になります。これも最初のポイントです。

requireトップレベル以外のコードでは使用しないでください。実行時間の増加という代償を払う準備ができていない限り、テストの前にすべてを要求してください。

非常に古いNode.JSには非同期バージョンがありましたがrequire、残念ながら現在はそうではないようです。

于 2012-10-11T10:07:34.563 に答える