Visual Studio 2017-Node.Proceso del servidor JS - ¿Apagar?


Estoy trabajando en un ASP.NET Aplicación en Visual Studio 2017 y estoy notando un nodo.JS: Proceso Javascript del lado del servidor que se ejecuta en 1.3 GB a 1.8 GB de memoria. Mi proceso de trabajo de IIS es del tamaño normal en VS 2015.

Mi aplicación no incluye ningún nodo.JS libraries. No soy capaz de averiguar cómo convertir este Nodo.JS: Proceso Javascript del lado del servidor desactivado. Está consumiendo demasiada memoria para algo que no me sirve de nada.

Hay una manera de matar esto aparte de desinstalar VS 2017 ¿y volver al VS 2015?

introduzca la descripción de la imagen aquí

Matar el proceso principal en el Administrador de tareas no afecta nada en VS, sin embargo, si voy a la ficha Detalles y matar a los procesos en ejecución individuales se bloquea Visual Studio. Tomé un video de lo que sucedió después de matar el proceso y ejecuté mi página web local (Lo siento por la calidad, por lo que el tamaño de la imagen limitada a 2MB):

introduzca la descripción de la imagen aquí

Author: Ryan Ternier, 2017-03-13

7 answers

Herramientas > Opciones > Editor de texto > JavaScript/TypeScript > Servicio de idioma...

Desmarque 'Habilitar el nuevo servicio de lenguaje JavaScript'.

Esto parece evitar que se inicie el proceso NodeJS.

 124
Author: Andy Taw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-23 09:31:17

Planteé comentarios sobre este tema:

Https://developercommunity.visualstudio.com/content/problem/31406/visual-studio-2017-nodejs-server-process-turn-off.html

Recibí respuesta de un equipo de EM-me dirigió a este post:

Https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childToView=27629#comment-27629

El nodo.el proceso exe tiene el comando alinear: introduzca la descripción de la imagen aquí

Efectivamente me dijeron:

En VS 2017, varias características se implementan en JavaScript. Nodo.visual Studio utiliza js para ejecutar ese JavaScript. Entre otras cosas, Node se utiliza para ejecutar el código que proporciona los servicios de formato e intellisense cuando un usuario está editando TypeScript o JavaScript. Este es un cambio desde VS 2015.

Responde a mi pregunta, pero saca a la luz otra: ¿por qué necesita 1.4 GB de memoria para darme intellisense encendido Archivos JavaScript ... ¿o es esta una de las soluciones que se han incorporado en VS por lo que utiliza menos memoria para que no llegue al límite de 2 GB(4 GB) de los procesos de 32 bits? Preguntas preguntas preguntas.

 24
Author: Ryan Ternier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-17 21:36:03

Debe deshabilitar el soporte de TypeScript en Visual Studio:

Herramientas > Extensiones y actualizaciones > TypeScript para Microsoft Visual Studio > Desactivar

Después de eso, simplemente reinicie Visual Studio y estará listo.

 19
Author: Gabriel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-26 13:21:44

La respuesta de Ryan Ternier me señaló en lo que creo que es la dirección correcta. Siguiendo su enlace (https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childToView=27629#comment-27629) me llevó a la respuesta de Bowden Kelly, justo debajo de la respuesta aceptada.

Aquí está la respuesta de Bowden Kelly:

El proceso de nodo que está viendo está activando el servicio de lenguaje JavaScript. Usted verá esto proceso aparece cada vez que edita un archivo JS, archivo TS, o cualquier archivo con JS / TS dentro (html, cshtml, etc). Este proceso es lo que impulsa IntelliSense, la navegación de código, el formato y otras funciones de edición, y lo hace analizando todo el contexto de su proyecto. Si tienes un montón de .archivos js en su proyecto, esto puede ser grande, pero lo más probable es que el problema es que tiene una gran cantidad de archivos de biblioteca que se están analizando. Por defecto, vamos a escanear cada .js/.archivo ts en su proyecto. Pero puede anular este comportamiento y ajustar el servicio de idioma para que solo se centre en su código. Para hacer esto crea un tsconfig.json en la raíz del proyecto con la siguiente configuración:

{ "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 ] } }

Una vez que agregué la carpeta con todas mis bibliotecas de script en el tsconfig.archivo json, la vida era buena de nuevo.

 14
Author: Ralph,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-11 19:21:34

La solución más sucia de la historia: simplemente cambie el nombre de ServiceHub.Host.Node.x86.exe a otra cosa. No me ha molestado desde entonces. Cuando (si) realmente lo necesitas, simplemente cámbialo de nombre.

El mismo truco funciona en Adobe Photoshop, que también ejecuta Node por alguna razón que aún no he descubierto en mi flujo de trabajo habitual.


Resulta...

No puedes simplemente cambiarle el nombre y esperar que las cosas sigan funcionando. ¡Quién lo diría!

Aparentemente este truco de cambio de nombre solo funciona si suspende VS process y kill Node, entonces reanudar VS. Si intenta iniciar VS con el archivo exe de nodo renombrado, se bloqueará al abrir un proyecto con un "error duro desconocido". Además, mientras se trabaja en un proyecto ya cargado, el contador de referencia perezoso por encima de los métodos y propiedades no funcionará porque aparentemente se basa en que el nodo esté allí de alguna manera.

Así que podría estar bien suspender el proceso de nodo y dejar que Windows paging intercambie su memoria desde la ram al disco duro, sin cambiar el nombre del exe para que pueda iniciar el VS de nuevo más tarde sin pasar por la molestia de cambio de nombre. Si estás dispuesto a vivir con las consecuencias, claro.

 3
Author: user1306322,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-17 17:33:01

Algo que puede ayudar a los proyectos a mitigar el peso de nodejs: es reasignar la versión de nodo utilizada en Herramientas > Opciones > Proyectos y Soluciones > Administración de Paquetes Web a una versión de 64 bits instalada. Studio todavía lanzará su nodo interno para un tsserver.js instancia, pero cualquier typescript en el proyecto por defecto a la versión suministrada -- y esto me ayudó de primera mano.

También, otra vez que encontré que el servicio de idiomas se estaba agotando, descubrí que simple tsconfig.json encima de los directorios usados como repositorios, y especifique a skipLibCheck: true, y agregue node_modules para excluir trem tremendamente ayudado a lo largo del servicio, y un archivo hace todas las carpetas debajo de él, independientemente de las referencias directas al proyecto. P.d. if si todavía desea soporte JavaScript intellisense, asegúrese de establecer la opción allowJs: true y noEmit: true.

Por último, verifique en las opciones de Typescript bajo Herramientas > Opciones > Editor de texto > Javascript / Typescript > Proyecto que no es se ha comprobado que compila automáticamente archivos Typescript que no forman parte de un proyecto ya que esto también puede enlazar recursos para proyectos auxiliares de terceros utilizando node o typescript.

Estos no son infalibles, cada uno tiene que encontrar su cuello de botella exacto, pero he encontrado que estos han funcionado para mí y mi equipo más a menudo que no

 2
Author: Nathan Teague,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-06 23:24:25

Solo señalando que el alto consumo de memoria se ha corregido en el 10 de mayo de 2017-Visual Studio 2017 versión 15.2 (26430.04) Lanzamiento.

Notas de la versión Aquí: https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes

Notas Específicas sobre la solución aquí: https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html

 1
Author: zulumojo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-11 19:29:41