Visual Studio 2017-Узел.Процесс сервера JS-выключить?

Я работаю над ASP.NET приложение в Visual Studio 2017, и я замечаю узел.JS: серверный процесс Javascript работает с объемом памяти от 1,3 ГБ до 1,8 ГБ. Мой рабочий процесс IIS-это нормальный размер в VS 2015.

мое приложение не включает какой-либо узел.JS библиотеки. Я не могу понять, как повернуть этот узел.JS: серверный процесс Javascript выключен. Это съедает слишком много памяти для того, что мне не нужно.

есть ли способ убить это помимо удаление VS 2017 и переключение обратно на VS 2015?

enter image description here

убийство основного процесса в Диспетчере задач ничего не влияет на VS, однако, если я перейду на вкладку "Подробности" и убью отдельные запущенные процессы, это приведет к сбою Visual Studio. Я снял видео того, что произошло после того, как я убил процесс и запустил свою локальную веб-страницу (извините за качество, поэтому ограниченный размер изображения до 2 МБ):

enter image description here

7 ответов


Инструменты > Параметры > Текстовый Редактор > 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

узел.исполняемый процесс командной строки: enter image description here

эффективно мне сказали:

в VS 2017 несколько функций реализованы в JavaScript. Узел.JS используется Visual Studio для запуска этого JavaScript. Помимо прочего, Node используется для запуска кода, предоставляющего службы форматирования и intellisense, когда пользователь редактирует TypeScript или JavaScript. Это изменение от VS 2015.

Он отвечает на мой вопрос, но выводит на свет другой-зачем вам это нужно 1.4 ГБ памяти, чтобы дать мне intellisense в файлах JavaScript ... или это одно из решений, которое было встроено в VS, поэтому оно использует меньше памяти, поэтому оно не попадает в предел 2GB(4GB) 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) привел меня к ответу Боудена Келли, прямо под принятым ответом.

вот ответ Боудена Келли:

процесс узла вы видите запитки служба языка JavaScript. Вы увидите, что этот процесс появляется в любое время, когда вы редактируете файл JS, TS или любой файл с JS/TS внутри (html, cshtml и т. д.). Этот процесс обеспечивает IntelliSense, навигацию по коду, форматирование и другие функции редактирования, и он делает это, анализируя весь контекст вашего проекта. Если у вас их много .JS файлы в вашем проекте, это может получить большой, но, скорее всего, проблема в том, что у вас есть много файлов библиотеки, которые анализируются. По умолчанию мы будем сканировать каждый .с JS/.файл ТС в ваш проект. Но вы можете переопределить это поведение и настроить языковую службу, чтобы сосредоточиться только на вашем коде. Для этого создайте tsconfig.JSON в корне проекта со следующими параметрами:

{ "compilerOptions": { "allowJs": true, "noEmit": true }, "exclude": [ "wwwroot/lib" //ignore everything in the lib folder (bootstrap, jquery, etc) // add any other folders with library code here ], "typeAcquisition": { "enable": true, "include": [ "bootstrap", "jquery" //list libraries you are using here ] } }

Как только я добавил папку со всеми моими библиотеками сценариев в tsconfig.файл JSON, жизнь снова была хороша.


самый грязный обходной путь: просто переименуйте ServiceHub.Host.Node.x86.exe к чему-то еще. Не беспокоили меня. Когда (Если) вам это действительно нужно, просто переименуйте его обратно.

тот же трюк работает в Adobe Photoshop, который также запускает узел по какой-то причине, которую я еще не обнаружил в своем обычном рабочем процессе.


получается...

вы не можете просто переименовать его и ожидать вещи, чтобы работать. Кто знает!

по-видимому, этот трюк переименования работает, только если вы приостановить процесс VS и убить узел, а затем возобновить VS. Если вы попытаетесь запустить VS с переименованным файлом exe узла, он рухнет при открытии проекта с "неизвестной жесткой ошибкой". Кроме того, при работе над уже загруженным проектом ленивый счетчик ссылок выше методов и свойств не будет работать, потому что, по-видимому, это зависит от того, что узел каким-то образом существует.

поэтому было бы неплохо просто приостановить процесс узла и позволить Windows paging поменять свою память из ОЗУ на жесткий диск, без переименование exe, чтобы вы могли снова запустить VS позже, не проходя через переименование хлопот. Если, конечно, вы готовы жить с последствиями.


что-то, что может помочь проектам смягчить вес nodejs: переназначить версию узла, используемую под Инструменты > Параметры > проекты и решения > управление веб-пакетами до установленной 64-битной версии. Studio все равно запустит свой внутренний узел для tsserver.JS экземпляр, но любой typescript в project будет по умолчанию для поставляемой версии-и это помогло мне из первых рук.

кроме того, в другой раз я обнаружил, что языковая служба работает, я обнаружено с помощью простого tsconfig.json над каталогами, используемыми в качестве репозиториев, и укажите skipLibCheck: true, и добавить node_modules для исключения-чрезвычайно помог вдоль службы, и один файл делает все папки под ним, независимо от прямых ссылок на проект. С. П.-Если вы хотите поддержку IntelliSense для JavaScript по-прежнему, убедитесь, что установлен allowJs: true и .

наконец, проверьте параметры Typescript в разделе Инструменты > Параметры > Текстовый Редактор > Javascript / Typescript > Project что не проверено на автоматически компилировать файлы Typescript, которые не являются частью проекта поскольку это также может связать ресурсы для вспомогательных сторонних проектов с использованием узла или typescript.

это не доказательство дурака, каждый должен найти свое точное узкое место, но я обнаружил, что они работали для меня и моей команды чаще, чем нет


просто отмечая, что потребление высокой памяти было исправлено в выпуске 10 мая 2017-Visual Studio 2017 версии 15.2 (26430.04).

Примечания К Выпуску Здесь: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