Why Does My .Net Runtime Optimization Service Have High CPU Usage on Windows 10? Here is the Fix

One of the main culprits behind a slow computer system is resource hogging. When a specific program or piece of software is using up all of your CPU resources, your computer is unable to process other applications. This will cause the computer to slow down, freeze, and even crash. While the .NET runtime optimization service typically does not cause high CPU usage, if it is corrupted or runs too slowly during the optimization period, it may use up 90-100% of your CPU on Windows 10 machines. If you find this happening, we have 4 solutions to fix the issue.   

What Is the .NET Runtime Optimization Service & Why Is It Important?

The .NET runtime optimization service, also known as mscorsvw.exe, is a core component of Windows 10 machines. It is used to optimize your machine by pre-compiling .NET assemblies in the background while your computer sits idle. The reason why the .NET framework is used for software, programs, and applications, is because it contains native image generator technology, which is what allows applications and software to launch quickly. Without the optimization by the .NET runtime optimization service, your applications would be slow to launch. 

.Net Runtime Optimization Service - High CPU Usage

While you may be tempted to disable or end this task from the task manager, do not do this as the hogging of your CPU resources is only temporary. If this is a recurring problem for you, there are some reliable methods that can speed up the .NET runtime optimization service and ensure your computer isn’t suffering from a malware infection.

What Causes .NET Runtime Optimization Service to Have High CPU Usage?

The .Net runtime optimization service was programmed to recompile the .NET framework libraries over a span of 5-10-minutes and is only supposed to run when the computer is idle. In many cases, users report that this is not the case and here are some causes as to why.

  • The optimization service is running too slow, causing it to hit well beyond those 5-10-minutes of operation time.
  • The service has become corrupted, either by malware or has been damaged in some way.
  • The optimization service that you see listed in your task manager is actually malware running under the disguise of this service.

Luckily, there are ways to deal with malware and any of the fixes below should solve your problem.

4 Solutions to Fix the “.NET Runtime Optimization Service” High CPU Usage Issue.

1. Run a Malware Scan to Eliminate Possible Infection.

The first solution is to run a malware scan to see if there is any type of infection or virus on your computer that could lead to the .NET runtime optimization service to use a high amount of processing power. While we do recommend that you run a scan using your own antivirus software, sometimes malware can be disguised as regular files on your computer, causing antivirus software to miss it. With this said, we also recommend running a program that is designed specifically to find and fix malware.  A fantastic option for this is Malwarebytes.  Here are the steps needed to run a malware scan using Malwarebytes as the example.

  1. Download and launch Malwarebytes on the computer.
  2. Click on the “full scan” option.
  3. Wait for the scan to complete.
  4. If malware is detected, select it from the list and quarantine it which will remove it.
  5. Restart your computer to see if the high CPU usage still exists with the .NET runtime optimization service.
Malwarebytes Scanner - Threat Scan

Please keep in mind that not all malware can be detected with just one program, so running several scans with different threat levels may be required.

2. Speed Up & Optimize Your .NET Runtime Optimization Service Using the Command Prompt Tool.

The .NET runtime optimization service was designed to run using only one CPU core, but with how advanced our computer processing units are now-a-days, we can have the application use multiple cores to run faster. In order to do this, you will need to use the command prompt tool that is built into Windows 10 and you will need to know if you are running a 32-bit or a 64-bit operating system.

  1. To find out if you are running 32-bit or 64-bit, open up your “file explorer” and right-click on “My PC” or “My computer” and choose properties.  Look under the “system type” to see what type of system you have.
  2. In your start menu, search “command prompt” to find the tool. When it pops up in your menu, right-click on it and tell it to “run as administrator”.
  3. Enter in “cd C:WindowsMicrosoft.NETFrameworkv4.0.30319” if you have a 32-bit system and hit enter OR, enter “cd c:WindowsMicrosoft.NETFramework64v4.0.30319” and hit enter if you have a 64-bit operating system and processor.
  4. Next, enter in “ngen.exe executequeueditems” as the second command and hit enter.
  5. Wait a minute or two and then close your command prompt and open up your task manager to see if the issue has been resolved.
Command Prompt - Optimize .Net Runtime Framework

If you are running an older version of Windows and you’ve run into the same problem with the .NET runtime optimization service, you can use the official Microsoft script that does the same thing as the commands above.  This script is found here on this GitHub page and will require you to use the “save as link” on the “raw” script. The file type should be a Windows script host. You will need to download it and then double click and hit “execute” to run it.

3. Restart the .NET Runtime Optimization Service.

You can always try restarting the service to see if it completes its process in a quicker manner the second time through. Here is how to do this.

Run Dialogue With Services
  1. Right-click on your Windows start menu and choose “run” from the list or search “run” in the search bar. You can also use the Windows key on your keyboard and tap “R” to get it to pop open.
  2. The “run dialogue” box will open up. Type in services.msc into the box and hit enter.
  3. An interface will appear. Scroll down and find the NVIDIA Telemetry Container and right-click on it. Choose the “restart” option.
  4. Right-click on the NVIDIA Telemetry Container again and choose the “properties” option.
  5. If the service is already started, choose the “stop” option. Run it again by hitting the “start” button.
  6. In the properties window, set the Telemetry Container to startup automatically.
  7. Apply the change and then hit “Ok”.
Configuration Interface for Services

Exit and open up the task manager to check to see if the high CPU usage has gone back to normal for the .NET runtime optimization service process

Please note: This only works if you are running a dedicated NVIDIA powered graphics card.

4. Perform a Clean Boot of Your System.

It may be possible that a third-party application that you are running is causing the .NET runtime optimization service to run a high CPU usage. To find out if this is the case, run a clean boot of your system, so that you are only running Windows services and the default programs that are needed for your computer to function.

Configuration Window for Services to Enable or Disable
  1. Bring up the “run dialogue” box again (see solution three).
  2. Type in msconfig into the box and hit okay.
  3. A configuration window will pop up. Choose the services tab at the top, checkmark the “hide all Microsoft services” box and select the disable all button. Hit okay.
  4. This will prompt you to restart the computer. Choose the option to restart at a later time. Bring up the “run dialogue” box again and type in msconfig and hit okay.
  5. When the configuration box opens up again, choose the “startup” tab at the top and choose the “open task manager” from the list. Look at the last field available called “startup impact” and disable any from the list that are labeled as high impact. To disable, right-click on each one that is high impact and choose disable. 
  6. Reboot your computer in clean boot mode to see if the problem still persists. If it does not, you can re-enable any of tasks that were previously labeled as high impact by following the steps above and choosing enable. This will allow them to automatically startup on reboot.
Task Manager - Startup Tab Showing High Impact

If none of the above fixes help, you can always temporarily disable the .NET runtime optimization service, but this will do harm to your NET Framework, which may require you to complete repairs on it. It is not recommended that you disable the service for this reason as the NET Framework is required to run a lot of default programs on your Windows system.

Leave a Comment