Почему пакет mon goose очень медленно загружается с сетевого диска? - PullRequest
0 голосов
/ 14 января 2020

При запуске приложения NodeJS, хранящегося на моем сетевом диске, для которого требуется mon goose (также в node_modules на том же сетевом диске), запуск приложения занимает около 15-20 секунд. (Тестовое приложение на локальном диске загружается в месяц goose намного быстрее.) Мой сетевой диск находится в проводной сети Ethe rnet со скоростью 100 Мбит, и фактическая скорость передачи составляет около 80 Мбит на мои тесты. Размер пакета Mon goose составляет всего около 1,75 МБ. Это серьезно загружает 150 МБ других модулей? или что-то еще происходит, что я могу настроить или улучшить?

Спасибо за любые советы.

1 Ответ

1 голос
/ 14 января 2020

Это не полоса пропускания , а * задержка 1003 * , которая часто является узким местом при работе в сети.

NodeJS, в силу своей модульности, по своей природе файловая система, тяжелый; типичная папка node_modules может содержать тысячи крошечных .js файлов, и для доступа к ним требуется много циклических обращений к файловой системе, и это может быть очень медленным.

Для загрузки только mongoose зависимости, необходимо получить доступ к файлам 452 .js.

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

Чтобы почувствовать это, попробуйте, например, скопировать 1000 небольших файлов поверх сеть. Средняя пропускная способность будет намного меньше, чем у одного большого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...