2017-09-05 15 views

答えて

4

ループごとに毎回require()が呼び出されますが、require()がロードされたモジュールはキャッシュされ、モジュールのロードコードはモジュールが初めてロードされたときにのみ実行されます。したがって、余分なオーバーヘッドがわずかにありますが、require('path')を呼び出すのは、そのモジュール名をキャッシュ内で検索し、キャッシュされたモジュールハンドルを返すことだけです。 require()を呼び出すたびに、モジュールをロード、解析、実行する必要はありません。まだ、この習慣にする方が良いだろう、と述べた

const pathModule = require('path'); 

function something(...paths) { 
    return pathModule.join(...paths); 
} 

にあなたがそれをやっていた方法に他の欠点を、初めてpathモジュールがロードされていることをされ、システムはそれをロードするために同期ファイルI/Oを使用しますが、これはマルチユーザーサーバーではうまくありません。ファイルI/Oは初めてのことですが、それでも素晴らしい方法はありません。サーバーの初期化時に同期I/Oを途切れない方がよい。

関連する問題