Estoy trabajando en una aplicación ASP.NET en Visual Studio 2017 y noto un Node.JS: proceso Javascript del lado del servidor que se ejecuta en 1.3GB a 1.8GB de memoria. Mi proceso de trabajo de IIS tiene el tamaño normal que tiene VS 2015.
Mi aplicación no incluye ninguna biblioteca Node.JS. No puedo encontrar la manera de desactivar este Nodo.JS: proceso Javascript del lado del servidor. Está consumiendo demasiada memoria para algo que no uso.
¿Hay alguna manera de eliminar esto además de desinstalar VS 2017 y volver a VS 2015?
Matar el proceso principal en el Administrador de tareas no afecta nada en VS, sin embargo, si voy a la pestaña Detalles y elimino los procesos individuales en ejecución, se bloquea Visual Studio. Tomé un video de lo que sucedió después de que finalicé el proceso y ejecuté mi página web local (perdón por la calidad, así que el tamaño de la imagen es tan limitado a 2 MB):
fuente
Respuestas:
Herramientas> Opciones> Editor de texto> JavaScript / TypeScript> Servicio de lenguaje ...
Desmarque 'Habilitar el nuevo servicio de lenguaje JavaScript'.
Esto parece evitar que se inicie el proceso NodeJS.
fuente
Elevé 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 MS; él me dirigió a esta publicación:
https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childToView=27629#comment-27629
El proceso node.exe tiene la línea de comando:
Efectivamente me dijeron:
En VS 2017, se implementan varias características en JavaScript. Visual Studio utiliza Node.js para ejecutar ese JavaScript. Entre otras cosas, Node se usa para ejecutar el código que proporciona servicios de formateo e inteligencia cuando un usuario edita TypeScript o JavaScript. Este es un cambio de VS 2015.
Responde a mi pregunta, pero saca a la luz otra: ¿por qué necesita 1,4 GB de memoria para proporcionarme inteligencia en los archivos JavaScript ... o esta es una de las soluciones que se ha incorporado en VS para que use menos memoria? No alcanza el límite de 2 GB (4 GB) de los procesos de 32 bits? Preguntas preguntas preguntas.
fuente
Debe deshabilitar la compatibilidad con TypeScript en Visual Studio:
Herramientas> Extensiones y actualizaciones> TypeScript para Microsoft Visual Studio> Desactivar
Después de eso, solo reinicie Visual Studio y estará listo.
fuente
La respuesta de Ryan Ternier me señaló en lo que creo que es la dirección correcta. Seguir 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:
Una vez que agregué la carpeta con todas mis bibliotecas de scripts en el archivo tsconfig.json, la vida volvió a ser buena.
fuente
La solución alternativa más sucia: simplemente cambie el nombre de
ServiceHub.Host.Node.x86.exe
a otra cosa. No me ha molestado desde entonces. Cuando (si) realmente lo necesita, simplemente cámbiele el 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 que ...
No puede simplemente cambiarle el nombre y esperar que las cosas sigan funcionando. ¡Quien sabe!
Aparentemente, este truco de cambio de nombre solo funciona si suspende el proceso VS y elimina Node, luego reanuda VS. Si intenta iniciar VS con el archivo Node exe renombrado, se bloqueará al abrir un proyecto con un "error duro desconocido". Además, mientras trabaja en un proyecto ya cargado, el contador de referencia diferido de los métodos y propiedades anteriores no funcionará porque aparentemente eso depende de que Node esté allí de alguna manera.
Por lo tanto, podría estar bien simplemente suspender el proceso Node y dejar que la paginación de Windows intercambie su memoria del ram en el disco duro, sin cambiar el nombre del exe para que pueda iniciar el VS nuevamente más tarde sin pasar por la molestia de cambio de nombre. Si estás dispuesto a vivir con las consecuencias, eso es.
fuente
Algo que puede ayudar a los proyectos a mitigar el peso del nodo: es reasignar la versión del nodo utilizada en Herramientas> Opciones> Proyectos y soluciones> Administración de paquetes web a una versión instalada de 64 bits. Studio aún lanzará su Nodo interno para una instancia de tsserver.js, pero cualquier mecanografiado en el proyecto tendrá la versión provista por defecto, y esto me ayudó de primera mano.
Además, otra vez que encontré que el servicio de idiomas se estaba agotando, descubrí que usaba un simple
tsconfig.json
encima de los directorios utilizados como repositorios, y especificoskipLibCheck: true
y agrego node_modules para excluirlo: fue de gran ayuda a lo largo del servicio, y un archivo hace todas las carpetas debajo independientemente de las referencias directas del proyecto. PD: si todavía desea la compatibilidad con JavaScript intellisense, asegúrese de configurar la opciónallowJs: true
ynoEmit: true
.Por último, verifique en las Opciones de mecanografiado en Herramientas> Opciones> Editor de texto> Javascript / Mecanografiado> Proyecto que no está marcado para compilar automáticamente archivos de Mecanografiado que no son parte de un proyecto, ya que también puede vincular recursos para proyectos auxiliares de terceros usando nodo o mecanografiado.
Estos no son infalibles, cada uno tiene que encontrar su cuello de botella exacto, pero he descubierto que estos han funcionado para mí y para mi equipo la mayoría de las veces
fuente
Solo señalando que el alto consumo de memoria se ha corregido en la versión 15.2 (26430.04) de Visual Studio 2017, versión 10.2 de mayo de 2017.
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
fuente
Para deshabilitar los servicios de idiomas en VS Code, vaya a extensiones, luego filtre las extensiones incorporadas y deshabilite el servicio de lenguaje TypeScript / Javascript.
Finalmente descubrí esto después de que el servicio de nodo del código VS bloqueó mi servidor aproximadamente un millón de veces. Molesto de que esto fuera tan difícil de encontrar documentación.
fuente
En mi caso, el bot quería matar el proceso node.js e hice lo siguiente para reducir el consumo de CPU de los procesos Node.Js que se ejecutan en Visual Studio 2019:
npm rebuild fsevents
Me parece mucho mejor ahora. Pero no 100% desafortunadamente.
Espero que esto ayude a alguien por ahí también. ¡Buena suerte chicos! :-)
fuente