Como corrigir Serviço de Otimização do Tempo de Execução do .NET consumindo CPU alta no Windows 10

O .NET Runtime Optimization Service (frequentemente visto como mscorsvw.exe no Gerenciador de Tarefas) pré-compila assemblies .NET para acelerar o lançamento de apps. Normalmente a carga de CPU é temporária. Quando o uso permanece alto por longos períodos, isso impacta o desempenho do PC e indica um problema: filas não processadas, instalação corrompida do .NET, atualizações pendentes ou, em casos raros, malware que se disfarça de serviço.
Neste guia você encontrará passos práticos, alternativas e um playbook que serve tanto para usuários quanto para administradores de TI.
O que é este serviço (1 linha)
Serviço que executa o compilador NGen para otimizar assemblies .NET e reduzir o tempo de inicialização de aplicações.
Quando isto é um problema
- Uso de CPU constante alto (>25–30%) por mais de 10–15 minutos.
- Interrupção ou lentidão perceptível em outras tarefas.
- Mensagens de erro relacionadas a .NET em logs do Windows Event Viewer.
Verificações iniciais rápidas
- Abra o Gerenciador de Tarefas e confirme o processo: mscorsvw.exe. Veja se o consumo é realmente dele.
- Verifique se o SO é 32 ou 64 bits: Configurações > Sistema > Sobre.
- Reinicie o PC para confirmar se o problema reaparece.
Métodos para corrigir
1) Escaneie por malware
Importante: malware pode se passar por processos legítimos. Use um antivírus atualizado (Windows Defender ou outro confiável) e faça uma verificação completa do sistema.
Notas:
- Se o antivírus encontrar ameaças, trate-as antes de prosseguir.
- Isolar o PC da rede pode ser prudente em ambientes corporativos.
2) Forçar o processamento das filas do NGen (CMD)
Este é o procedimento típico para esvaziar filas do compilador.
Passos:
- Digite
cmd
na barra de pesquisa do Windows e execute o Prompt de Comando como administrador. - Se o seu sistema for 32 bits, navegue para:
C:\Windows\Microsoft.NET\Framework\v4.0.30319
- Se o seu sistema for 64 bits, navegue para:
C:\Windows\Microsoft.Net\Framework64\v4.0.30319
- Execute o utilitário NGen para processar as filas:
ngen.exe executequeueditems
Resultado esperado: o comando processa os itens pendentes e reduz o uso de CPU do mscorsvw.exe. Se aparecerem erros, anote-os para investigar.
3) Reiniciar o serviço que controla telemetria (quando relacionado com drivers como NVIDIA)
Alguns relatos mostram conflito entre telemetria de drivers e tarefas de otimização. Verifique apenas se fizer sentido para o seu caso.
Passos:
- Pressione tecla Windows+R para abrir Executar.
- Digite
services.msc
e pressione Enter. - Localize o serviço relevante (p.ex. NVIDIA Telemetry Container), clique com o botão direito e selecione Reiniciar.
- Abra Propriedades desse serviço e defina Tipo de inicialização como Automático se quiser que ele reinicie com o Windows.
Observação: reiniciar serviços de hardware deve ser feito com cautela em máquinas de produção.
4) Executar script oficial da Microsoft (quando disponível)
Passos gerais:
- Acesse a página oficial do script no GitHub. Prefira repositórios da própria Microsoft.
- Clique com o botão direito em Raw e selecione Salvar link como. Salve como arquivo de script do Windows.
- Execute o arquivo com o Windows Script Host ou via PowerShell conforme instruções do repositório.
Importante: abra apenas scripts de fontes verificadas. Revise o conteúdo do script antes de executar.
5) Reparar arquivos do sistema (SFC e DISM)
Se a instalação do Windows ou componentes do .NET estiverem corrompidos, repare-os:
Abra Prompt de Comando como administrador e execute:
sfc /scannow
Se SFC reportar problemas não corrigidos, execute:
DISM /Online /Cleanup-Image /RestoreHealth
Reinicie e verifique novamente o uso da CPU.
6) Atualizar / reinstalar .NET Framework
- Remova atualizações problemáticas via Windows Update.
- No Painel de Controle > Programas e Recursos > Ativar ou desativar recursos do Windows, desmarque e reative versões do .NET (com cuidado).
- Use instaladores oficiais da Microsoft para reparar ou reinstalar versões específicas do .NET.
7) Logs e diagnóstico avançado
- Abra o Visualizador de Eventos (Event Viewer) e filtre por Application / System para erros relacionados a .NET ou mscorsvw.
- Use Process Explorer (Sysinternals) para ver a linha de comando completa do processo.
- Em casos corporativos, verifique políticas de grupo que possam acionar tarefas de manutenção.
Alternativas e quando isso pode falhar
- Se o problema for malware, apenas forçar NGen não resolve. Faça limpeza completa.
- Em sistemas com muitos assemblies personalizados (servidores com apps .NET), a tarefa de otimização pode demorar; nesse caso, planeje execução em janela de manutenção.
- Em sistemas muito antigos, considere atualizar para uma versão mais nova do .NET ou migrar a aplicação para .NET Core/.NET 5+ para obter melhores tempos de compilação.
Mini playbook (SOP) — passo a passo para resolver
- Verifique no Gerenciador de Tarefas: confirme processo e consumo. 2. Faça scan antimalware completo. 3. Execute ngen.exe executequeueditems conforme arquitetura. 4. Rode sfc /scannow e DISM se necessário. 5. Se ainda houver problema, aplique script oficial da Microsoft. 6. Reinstale/repse .NET como último recurso.
Fluxo de decisão (Mermaid)
flowchart TD
A[Alto uso de CPU pelo mscorsvw.exe?] -->|Não| B[Fim: comportamento normal]
A -->|Sim| C[Executar scan antimalware]
C --> D{Ameaça encontrada?}
D -->|Sim| E[Remover ameaça e reiniciar]
D -->|Não| F[Executar ngen.exe executequeueditems]
F --> G{Uso caiu?}
G -->|Sim| H[Fim: monitorar]
G -->|Não| I[Executar SFC/DISM]
I --> J{Corrigido?}
J -->|Sim| H
J -->|Não| K[Aplicar script oficial / reinstalar .NET]
K --> L[Fim: se falhar, escalar para suporte]
Checklist por função
Usuário doméstico:
- Reiniciar PC.
- Executar verificação completa com antivírus.
- Rodar comando NGen apropriado.
- Rodar sfc /scannow e reiniciar.
Administrador de TI:
- Checar Event Viewer e logs centralizados.
- Verificar políticas de atualização e GPOs que afetem o .NET.
- Planejar janela para executar otimizações em várias máquinas.
- Validar assinaturas digitais dos binários .NET e scripts.
Critérios de aceitação
- Uso de CPU do processo mscorsvw.exe volta a níveis baixos (<10–15%) em 30 minutos após aplicar correção.
- Não há mensagens de erro relacionadas a .NET no Event Viewer após reinício.
- Nenhum antivírus reporta ameaças persistentes.
Dicas finais e segurança
- Nunca execute scripts desconhecidos sem revisão. Prefira soluções e downloads oficiais da Microsoft.
- Em máquinas críticas, execute as ações em janela de manutenção. Faça backup antes de reinstalar componentes do sistema.
Resumo: a solução típica é escanear por malware, processar as filas do NGen (ngen.exe executequeueditems), e reparar arquivos do sistema se necessário. Se nada resolver, use scripts oficiais ou reinstale o .NET. Aplique o playbook e use o checklist para documentar a intervenção.
Mais como este:
- How to Fix Video_Dxgkrnl_Fatal_Error Easily in Windows 10
- How to Enable Group Policy Editor (gpedit.msc) in Windows 10 Home
- How to Fix ‘Kmode_Exception_Not_Handled’ on Windows 10
- How to Fix Microsoft Compatibility Telemetry High Disk Usage in Windows 10
Important: se precisar, anote erros específicos do Event Viewer e consulte o suporte técnico com essas informações.
Materiais semelhantes

Corrigir erro wireless adapter ou access point

Recuperar mensagens apagadas no celular

Geotagear fotos com o app Fotos da Apple

Backup de fotos sem computador — guia prático

Melhor app trading de índices: guia prático
