2015-09-15 3 views
0

Когда модуль требуется в node.js два раза, он возвращает тот же объект, потому что require() кэширует предыдущие вызовы.Использует ли require require() влияние на производительность?

Как быстро требуется вторая? Может ли непрерывное использование require() вызвать узкое место в производительности?

Так позволяет сказать, что у меня есть модуль вроде этого:

var util = require("util"); 

module.exports = function (param, logger) { 
var module = {}; 

module.toString = function() { 
    return util.format("My nicely formatted text"); 
} 

return module; 

};

toString() будет называться несколько раз. Что произойдет, если опустить сохранение модуля Util в переменной util и требует от него каждый раз, как это:

return require("util").format("My nicely formatted text"); 

Делает ли мое приложение медленнее?

ответ

2

Звонки на require() хранятся в кешках, поэтому между ними не должно быть большой разницы. Однако я бы рекомендовал загрузить все ваши модули в верхней части файла. Запуск вашего приложения будет немного медленнее, но он не должен сильно отличаться, и это более читаемо.

Кроме того, звонки на require() блокируются, поэтому, когда они обрабатываются, ничего не запускается Node. Это еще одна причина, по которой вы должны ставить все свои требования наверху, так что вы не перестанете блокировать свое приложение дальше по дороге.

 Смежные вопросы

  • Нет связанных вопросов^_^