Net Runtime Optimization Service High Cpu

Posted on

Earlier this year I blogged about the automatic maintenance task in Windows Server 2012 R2 being EVIL, today it’s time for.NET Runtime Optimization Service spiking the CPU on one of my domain controllers after installing updates. Also happens when using the (quite new) November 2014 media for Windows Server 2012 R2 that includes several updates.

This article explains why due to high mscorsvw.exe CPU usage, a Windows 10/8/7 computer may run slow & what you can do about it. If you open the Task Manager in such a scenario, you will now find a process called mscorsvw.exe which has a CPU usage of more than 50%! This service is actually used by the .NET framework to pre-compile. So, what is the mscorsvw.exe process and how to deal with it?

Windows computer slow due to high mscorsvw.exe CPU usage

HighNet runtime optimization service windows 10

David Notario’s long back made the following observation on Microsoft’s MSDN blog:

Stop Net Runtime Optimization Service

mscorsvw.exe is precompiling .NET assemblies in the background. Once it’s done, it will go away. Typically, after you install the .NET Redist, it will be done with the high priority assemblies in 5 to 10 minutes and then will wait until your computer is idle to process the low priority assemblies. Once it does that it will shutdown and you won’t see mscorsvw.exe. One important thing is that while you may see 100% CPU usage, the compilation happens in a process with low priority, so it tries not to steal the CPU for other stuff you are doing. Once everything is compiled, assemblies will now be able to share pages across different processes and warm start up will be typically much faster, so we’re not throwing away your cycles.

The cause is the mscorsvw.exe process is recompiling .Net assemblies in the background. So normally, the process will go away after a while and your computer speed should be back to normal. Even if you wish, you cannot kill the process in the normal way.

This is because, the process mscorsvw.exe is a system process, so when you attempt to close it directly using the Task Manager, you won’t be able to do that! You have to be a bit proficient with CMD.

If you don’t want to wait until your computer is idle so that it can start compiling, you can do the following:

  1. Navigate to “C:WINDOWSMicrosoft.NETFrameworkv2.0.50727” in Windows Explorer.
  2. Click on Start, type CMD and run it as admin. On command prompt specify the above path and type ngen.exe executequeueditems. This command will process all pending work. Once this is done, the service will shutdown, as it has nothing else to do.
  3. Restart your computer; now you will see that there will be no mscorsvw.exe process running in Task Manager.

Hope this helps!

TIP: Download this tool to quickly find & fix Windows errors automatically

.net Runtime Optimization Service High Cpu Windows 7

Related Posts: