Я работаю над приложением ASP.NET в Visual Studio 2017, и я замечаю Node.JS: серверный процесс Javascript, работающий с объемом памяти от 1,3 до 1,8 ГБ. Мой рабочий процесс IIS имеет нормальный размер, как в VS 2015.
В моем приложении нет библиотек Node.JS. Я не могу понять, как отключить этот процесс Javascript на стороне сервера Node.JS: Это съедает слишком много памяти для того, что мне не нужно.
Есть ли способ убить это, кроме удаления VS 2017 и переключения обратно на VS 2015?
Убийство основного процесса в диспетчере задач ни на что не влияет в VS, однако, если я перейду на вкладку «Подробности» и убью отдельные запущенные процессы, это приведет к сбою Visual Studio. Я снял видео того, что произошло после того, как я убил процесс и запустил свою локальную веб-страницу (извините за качество, ТАК ограниченный размер изображения до 2 МБ):
источник
Ответы:
Инструменты> Параметры> Текстовый редактор> JavaScript / TypeScript> Языковая служба ...
Снимите флажок «Включить новую языковую службу JavaScript».
Похоже, это препятствует запуску процесса NodeJS.
источник
Я оставил отзыв по этому поводу:
https://developercommunity.visualstudio.com/content/problem/31406/visual-studio-2017-nodejs-server-process-turn-off.html
Я получил ответ от команды MS - он направил меня к этому сообщению:
https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childToView=27629#comment-27629
У процесса node.exe есть командная строка:
Фактически мне сказали:
В VS 2017 несколько функций реализованы на JavaScript. Node.js используется Visual Studio для запуска этого JavaScript. Среди прочего, Node используется для запуска кода, который предоставляет службы форматирования и intellisense, когда пользователь редактирует TypeScript или JavaScript. Это изменение по сравнению с VS 2015.
Он отвечает на мой вопрос, но проливает свет на другой - зачем вам 1,4 ГБ памяти, чтобы дать мне intellisense для файлов JavaScript ... или это одно из решений, встроенных в VS, поэтому оно использует меньше памяти, поэтому не Вы не достигли предела в 2 ГБ (4 ГБ) для 32-разрядных процессов? Вопросы вопросы вопросы.
источник
Вам необходимо отключить поддержку TypeScript в Visual Studio:
Инструменты> Расширения и обновления> TypeScript для Microsoft Visual Studio> Отключить
После этого просто перезапустите Visual Studio, и все готово.
источник
Ответ Райана Тернье указал мне на то, что я считаю правильным. После его ссылки ( https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childToView=27629#comment-27629 ) я пришел к ответу Боудена Келли , прямо под принятым ответом.
Вот ответ Боудена Келли:
Как только я добавил папку со всеми моими библиотеками сценариев в файл tsconfig.json, жизнь снова наладилась.
источник
Самый грязный обходной путь: просто переименуйте
ServiceHub.Host.Node.x86.exe
что-нибудь другое. С тех пор меня не беспокоит. Когда (если) он вам действительно понадобится, просто переименуйте его обратно.Тот же трюк работает в Adobe Photoshop, который также запускает Node по какой-то причине, которую я еще не обнаружил в моем обычном рабочем процессе.
Оказывается...
Вы не можете просто переименовать его и ожидать, что все будет работать. Кто знал!
Очевидно, этот трюк с переименованием работает только в том случае, если вы приостанавливаете процесс VS и убиваете Node, а затем возобновляете VS. Если вы попытаетесь запустить VS с переименованным файлом Node exe, он выйдет из строя при открытии проекта с «неизвестной аппаратной ошибкой». Кроме того, при работе с уже загруженным проектом счетчик ленивых ссылок над методами и свойствами не будет работать, потому что, очевидно, это зависит от присутствия Node.
Так что было бы нормально просто приостановить процесс Node и позволить подкачке Windows выгружать свою память из оперативной памяти на жесткий диск, не переименовывая exe, чтобы вы могли снова запустить VS без проблем с переименованием. Если вы готовы жить с последствиями, конечно.
источник
Что-то, что может помочь проектам снизить вес nodejs: переназначить версию узла, используемую в меню Инструменты> Параметры> Проекты и решения> Управление веб-пакетами , установленной 64-битной версии. Studio по-прежнему будет запускать свой внутренний узел для экземпляра tsserver.js, но любой машинописный текст в проекте по умолчанию будет использовать предоставленную версию - и это помогло мне из первых рук.
Кроме того, в другой раз, когда я обнаружил, что языковая служба работает, я обнаружил, что с помощью простого
tsconfig.json
над каталогами, используемыми в качестве репозиториев, укажитеskipLibCheck: true
и добавьте node_modules для исключения - это очень помогло в службе, и один файл выполняет все папки под это, независимо от прямых ссылок на проект. PS - если вам все еще нужна поддержка intellisense в JavaScript, обязательно установите параметрallowJs: true
иnoEmit: true
.Наконец, убедитесь, что в параметрах Typescript в меню Инструменты> Параметры> Текстовый редактор> Javascript / Typescript> Проект не установлен флажок Автоматически компилировать файлы TypeScript, которые не являются частью проекта, поскольку это также может связывать ресурсы для вспомогательных сторонних проектов. используя узел или машинописный текст.
Они не являются надежными, каждый должен найти свое узкое место, но я обнаружил, что они чаще всего срабатывают для меня и моей команды.
источник
Просто отмечу, что потребление большой памяти было исправлено в выпуске Visual Studio 2017 версии 15.2 (26430.04) от 10 мая 2017 г.
Примечания к выпуску здесь: https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes
Конкретные примечания об исправлении здесь: https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html
источник
Чтобы отключить языковые службы в VS Code, перейдите к расширениям, затем отфильтруйте встроенные расширения и отключите языковую службу TypeScript / Javascript.
Я наконец обнаружил это после того, как служба узлов кода VS разбила мой сервер около миллиона раз. Раздражает, что об этом так сложно найти документацию.
источник
В моем случае бот хотел убить процесс node.js, и я сделал следующее, чтобы снизить потребление ЦП процессами Node.Js, которые выполняются в Visual Studio 2019:
npm rebuild fsevents
Мне кажется, сейчас намного лучше. Но, к сожалению, не на 100%.
Надеюсь, это тоже поможет кому-то там. Удачи, ребята! :-)
источник