Estou trabalhando em um aplicativo ASP.NET no Visual Studio 2017 e percebendo um processo Javascript do Node.JS: Server executando de 1,3 a 1,8 GB de memória. Meu processo de trabalho do IIS é do tamanho normal do VS 2015.
Meu aplicativo não inclui nenhuma biblioteca Node.JS. Não consigo descobrir como desativar esse processo Javascript do Node.JS: Server. Está consumindo muita memória para algo que eu não uso.
Existe uma maneira de eliminar isso, além de desinstalar o VS 2017 e voltar ao VS 2015?
Matar o processo principal no Gerenciador de tarefas não afeta nada no VS, no entanto, se eu for para a guia Detalhes e matar os processos individuais em execução, ele trava o Visual Studio. Eu gravei um vídeo do que aconteceu depois que finalizei o processo e executei minha página da web local (desculpe pela qualidade, o tamanho da imagem é limitado a 2 MB):
fonte
Respostas:
Ferramentas> Opções> Editor de texto> JavaScript / TypeScript> Serviço de idiomas ...
Desmarque a opção 'Ativar o novo serviço de idioma JavaScript'.
Isso parece impedir o início do processo do NodeJS.
fonte
Levantei comentários sobre esse assunto:
https://developercommunity.visualstudio.com/content/problem/31406/visual-studio-2017-nodejs-server-process-turn-off.html
Recebi resposta de uma equipe da MS - ele me direcionou para este post:
https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childToView=27629#comment-27629
O processo node.exe tem a linha de comando:
Efetivamente me disseram:
No VS 2017, vários recursos são implementados em JavaScript. O Node.js é usado pelo Visual Studio para executar esse JavaScript. Entre outras coisas, o Node é usado para executar o código que fornece serviços de formatação e intellisense quando um usuário está editando TypeScript ou JavaScript. Esta é uma alteração do VS 2015.
Ele responde à minha pergunta, mas traz à tona outra - por que você precisa de 1,4 GB de memória para fornecer inteligência nos arquivos JavaScript ... ou essa é uma das soluções que foram incorporadas ao VS, portanto, usa menos memória e não atingiu o limite de 2 GB (4 GB) de processos de 32 bits? Perguntas perguntas perguntas.
fonte
Você precisa desativar o suporte ao TypeScript no Visual Studio:
Ferramentas> Extensões e atualizações> TypeScript para Microsoft Visual Studio> Desativar
Depois disso, basta reiniciar o Visual Studio e você estará pronto.
fonte
A resposta de Ryan Ternier me mostrou o que acredito ser a direção certa. Seguir o link ( https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childToView=27629#comment-27629 ) me levou à resposta de Bowden Kelly , logo abaixo da resposta aceita.
Aqui está a resposta de Bowden Kelly:
Depois de adicionar a pasta com todas as minhas bibliotecas de scripts ao arquivo tsconfig.json, a vida foi boa novamente.
fonte
A solução mais suja de todos os tempos: renomeie o
ServiceHub.Host.Node.x86.exe
para outra coisa. Não me incomoda desde então. Quando (se) você realmente precisar, basta renomeá-lo novamente.O mesmo truque funciona no Adobe Photoshop, que também executa o Node por algum motivo que ainda não descobri no meu fluxo de trabalho habitual.
Acontece que ...
Você não pode simplesmente renomeá-lo e esperar que as coisas continuem funcionando. Quem sabia!
Aparentemente, esse truque de renomeação só funciona se você suspender o processo do VS e matar o Node e, em seguida, retomar o VS. Se você tentar iniciar o VS com o arquivo Node exe renomeado, ele falhará ao abrir um projeto com um "erro grave desconhecido". Além disso, ao trabalhar em um projeto já carregado, o contador de referência lento acima dos métodos e propriedades não funcionará porque, aparentemente, isso depende do Node estar de alguma forma.
Portanto, pode ser bom suspender o processo do Nó e permitir que a paginação do Windows troque sua memória do ram para o disco rígido, sem renomear o exe, para que você possa iniciar o VS novamente mais tarde sem passar pelo incômodo de renomear. Se você está disposto a viver com as consequências, é isso.
fonte
Algo que pode ajudar os projetos a reduzir o peso do nodejs: é reatribuir a versão do nó usada em Ferramentas> Opções> Projetos e Soluções> Gerenciamento de Pacotes da Web a uma versão de 64 bits instalada. O Studio ainda lançará seu Nó interno para uma instância tsserver.js, mas qualquer texto datilografado no projeto será padronizado para a versão fornecida - e isso me ajudou em primeira mão.
Além disso, outra vez que descobri que o serviço de idiomas estava acabando, descobri usando um simples
tsconfig.json
acima dos diretórios usados como repositórios e especifiqueiskipLibCheck: true
e adicionei node_modules para excluir - tremendamente ajudado no serviço, e um arquivo faz todas as pastas abaixo independentemente das referências diretas ao projeto. PS - se você desejar ainda suporte a intellisense para JavaScript, defina asallowJs: true
opçõesnoEmit: true
opção .Por fim, verifique nas Opções de texto datilografado em Ferramentas> Opções> Editor de texto> Javascript / Texto datilografado> Projeto que não está marcado para compilar automaticamente arquivos datilografados que não fazem parte de um projeto pois também podem vincular recursos para projetos auxiliares de terceiros usando nó ou texto datilografado.
Estes não são à prova de idiotas, cada um precisa encontrar o gargalo exato, mas eu descobri que eles funcionaram para mim e minha equipe com mais frequência do que nunca
fonte
Apenas observando que o consumo de alta memória foi corrigido na versão de 10 de maio de 2017 - Visual Studio 2017 versão 15.2 (26430.04).
Notas da versão aqui: https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes
Notas específicas sobre a correção aqui: https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html
fonte
Para desativar os Serviços de idiomas no código VS, vá para extensões, filtre as extensões internas e desative o serviço de idioma TypeScript / Javascript.
Finalmente descobri isso depois que o serviço do nó do código VS travou meu servidor cerca de um milhão de vezes. Irritante que isso fosse tão difícil de encontrar documentação.
fonte
No meu caso, o bot queria matar o processo node.js. e fiz o seguinte para reduzir o consumo da CPU dos processos do Node.Js que são executados no Visual Studio 2019:
npm rebuild fsevents
Parece-me muito melhor agora. Mas não 100%, infelizmente.
Espero que isso ajude alguém por aí também. Boa sorte pessoal! :-)
fonte