This post was written by Rich Lander, a Program Manager on the Microsoft .NET Framework Team. It was written for people who want to understand why mscorsvw.exe is running on their machines.

Have you experience high CPU usage [particularly after a Windows Update], and you’ve looked in Task Manager to find that mscorsvw.exe is the culprit? Mscorsvw.exe is a component of Windows, and is otherwise known as the .NET Framework Optimization Service. Ironically, it optimizes your machine to launch apps faster.

Why do I need mscorsvw and the .NET Framework?

Millions of software developers around the world choose to write apps using the .NET Framework, which is provided by Microsoft. You’ve probably used many apps built with the .NET Framework without even knowing that. The .NET Framework includes a technology called Native Image Generator (NGEN) that makes apps launch much faster and that periodically does work to optimize your machine.

How can I tell if mscorsvw is running?

Task manager can tell you which apps or services are running on your machine and how much machine resources they are using. You can see mscorsvw.exe in Task Manager, highlighted below. You might see more than one reference to mscorsvw.exe in Task Manager. That’s OK and part of how it normally operates.

5228 clip image001 5AA9527B

 

How often and when does mscorsvw run?

The .NET Framework optimization service runs at two main times:

  • When the .NET Framework is installed on your machine
  • When the .NET Framework is serviced by Windows Update

The first case doesn’t happen very often. The .NET Framework comes with Windows, so you often already have the .NET Framework version you need to run a given app. The second case happens more often. We update the .NET Framework a handful of times of year, usually to improve security. These updates will typically occur on a “patch Tuesday,” if you are familiar with that term.

We try to update and optimize the .NET Framework during the night (specific to each time zone), while most people are sleeping. Sometimes, it isn’t possible to do that, particularly if a machine is turned off. As a result, the .NET Framework is sometimes updated during the day, which then requires the .NET Framework Optimization Service to run during the day, too. When that happens, you might notice the service running and possibly slowing down your machine for a period of time. You might wonder why this is happening, since the .NET Framework Optimization service runs in the background.

In Windows 8, we changed the .NET Framework Optimization Service, to operate in more of a silent mode. It only does work during idle time (when you are not actively using your computer). That means that you should never notice it, even if it is operating during the day.

Summary

The .NET Framework is installed on over a billion machines and is used to run millions of apps every day. On the .NET Framework product team, we focus on making those apps launch as quickly as possible. A big part of how we do that is by optimizing both the .NET Framework and the apps that run on it. This optimization needs to be done on your machine a handful of times a year, due to updates to the .NET Framework.