.NET Runtime Optimization Service High CPU Usage in Windows 11/10
Have you noticed that your Windows PC suddenly slows down, and you went to the Task Manager to find that there is this process called .NET Runtime Optimization Service (Mscorsvw.exe) is causing high CPU usage in Windows 11 or Windows 10? If so, this article will explain what this process is about and what you can do to fix the issue.
What is .NET Runtime Optimization Service Mscorsvw.exe?
.NET Runtime Optimization Service, also known as mscorsvw.exe, is a core component of Windows. It is a Windows service that pre-compiles .NET assembly files so that program made in .NET can launch faster.
Software can be written in many languages. Thousands of software are written using .NET Framework. You must have used some apps built with .NET Framework without even knowing that. The .NET Runtime Optimization Service is the service that help to optimize your Windows to make apps launch much faster.
By default, .NET Runtime Optimization Service will run in the background when it detects your PC is in idle mode. Once the compilation is complete, it will go away.
Depending on the number of .NET programs you have in your Windows, the sizes of these programs and your PC performance, it may take some time for the service to complete its run and may cause high CPU usage in Windows 11/10 during the process.
It can appear in multiple mscorsvw.exe processes and causing high CPU, RAM or Disk usage spike up to 100%.
.NET Runtime Optimization Service High CPU usage in Windows 11/10
Though we would not recommend you to terminate the service as it is actually doing something good for your PC. You can, however, terminate the service by simply clicking End Task while selecting the process in Task Manager. Doing this will temporary get rid of the process, but it will still come back later when your PC goes idle again.
You should not really have to worry about this process. When its work is done, it will go away itself. It will only run when there is a new app or program made in .NET Framework is installed in your system (or when you install the .NET Framework Redist).
If the .NET Runtime Optimization Service runs endlessly at high CPU usage, it may be the program itself that is causing the issue. Instead of disabling the process, you should try to fix or remove the problematic .NET program first.
If the CPU resources consumption by the process bothers you or if you just want to stop the .NET Runtime Optimization Service process entirely, read below.
Speed up the .NET Runtime Optimization Service
Before you go on to disable the service, we suggest you to first try to speed up the process. By speeding it up, it can get its work done faster and you can then get on to other things.
By default, .NET Runtime Optimization Service runs at single core processor. To help speed it up, right-click the process in the Details tab in Task Manager, select Set Affinity. Then, select All processors and make sure all CPU cores are checked. Right-click the process again and select Set Priority. Give it a priority of High.
After the change, .NET Runtime Optimization Service may cause temporary high CPU usage and as high as 100% which is exactly what we intend to do. Doing this should allow .NET Runtime Optimization Service to run at maximum speed, thus, completing its work faster. Once its job is done, it will go away itself.
How to stop .NET Runtime Optimization Service High CPU
To permanently stop the service, which again is something we would not recommend doing, you can disable the .NET Runtime Optimization Service in the Services setting. Here’s how to do it.
- Press Win+R keys on your keyboard to open Run window.
- Type services.msc and hit Enter.
- Double-click on the services named Microsoft .NET Framework NGEN.
- Click on the Startup type drop down menu, then select Disabled.
- Click Apply, then OK.
Close the Services panel and restart your PC. The .NET Runtime Optimization Service high CPU usage in Windows 10/11 issue should be resolved.
The regedit way to disable the service
If you have no access to the Services panel or you just prefer to do it the other way, you can disable the service via Registry Editor. Please keep in mind that registry editing may cause serious problem if it is done incorrectly. Backup your registry before modifying anything and do it at your own risk.
Go to start menu or press Win+R key. Type regedit to open Registry Editor. Navigate to the following registry folder. If you see multiple clr_optimization folders, select the latest version number.
On the right pane, double-click on the Start registry. In the value data field, enter 4 (to disable the service) then click OK. This value represents the startup type for the .NET Runtime Optimization Service. Enter 2 for Automatic, 3 for Manual and 4 for Disabled.
Once done, close the Registry Editor and restart your computer. Verify if the .NET Runtime Optimization Service high CPU usage problem is fixed.
Read:
- Antimalware Service Executable High Disk / CPU Usage in Windows 10
- WMI Provider Host (WmiPrvSE.exe) High CPU Usage in Windows 10 Fix
Description for sharing: Read this fix if you notice .NET Runtime Optimization Service is causing high CPU usage in Windows 11/10.
NET Runtime Optimization Service грузит процессор
Время от времени пользователям приходится сталкиваться с проблемами падения производительности системы, вызываемыми чрезмерным потреблением ресурсов процессора или оперативной памяти некоторыми процессами. Чаще всего виновниками повышенной загрузки становятся system и svchost, но в их числе могут быть и другие процессы: wmiprvse.exe, tiworker.exe и mscorsvw.exe, или NET Runtime Optimization Service как он отображается в разделе Диспетчера задач «Процессы». Об этом последнем процессе мы сегодня как раз и поговорим.
↑ NET Runtime Optimization Service грузит процессор
↑ Что такое процесс NET Runtime Optimization Service
Процесс NET Runtime Optimization Service, исполняемый файл которого mscorsvw.exe располагается в каталогах %windir%\Microsoft.NET\Framework64\номер_версии и %windir%\WinSxS, является «частью» компонента Microsoft NET Framework и представляет собой службу оптимизации времени выполнения, в задачи которой входит ускорение запуска зависящих от нее приложений. В плане потребления системных ресурсов процесс NET Runtime Optimization Service скромен, однако в некоторых случаях, в частности, когда выполняемая им процедура оптимизации занимает больше времени, чем необходимо, он может начать грузить процессор. Причиной повышенной загрузки CPU процессом mscorsvw.exe также может быть сбой в работе службы и неполное использование ею ресурсов процессора, что наблюдается на слабых машинах.
↑ Можно ли отключить службу
Можно, но делать этого без крайней не то нужды не рекомендуется, более оптимальным решением является ее конфигурирование. Рассмотрим этот и другие способы устранения проблемы более подробно.
↑ Оптимизация NET Runtime Optimization Service
Поскольку NET Runtime Optimization Service по умолчанию использует только одно ядро процессора, службе требуется больше времени на выполнение возложенных на нее задач. Вы можете сократить его, выделив ей больше ядер CPU. Запустите командную строку с правами администратора, перейдите в расположение %windir%\Microsoft.NET\Framework64\v4.0.30319 (\Framework\ в 32-битной версии) и выполните команду:
Это заставит службу использовать все (до шести) ядра процессора.
↑ Скрипт настройки DrainNGenQueue
Как вариант, для решения проблемы с загрузкой службой оптимизации времени выполнения процессора можете воспользоваться готовым официальным скриптом от Microsoft, скачав его со страницы проекта GitHab. Кликните правой кнопкой мыши по кнопке Raw, выберите в меню «Сохранить ссылку как» и сохраните файл DrainNGenQueue.wsf в любое удобное вам расположение. Запустите скрипт двойным кликом, который будет выполнен в открывшейся командной строке.
↑ Прочие решения
Если оптимизация сервиса не помогла, можно пойти на более жесткие меры, например, попробовать принудительно отключить службу, правда, в оснастке управления службами Windows 8, 10 и 11 мы так и не нашли ту самую NET Runtime Optimization Service, которая работала бы под процессом mscorsvw.exe. Отвечающий за службу подраздел clr_optimization в реестре есть, но он не содержит параметров ImagePath (путь к исполняемому файлу) и Start (определяет статус службы). Фактически это означает, что в оснастке services.msc такая служба отображаться не будет и работать она также не будет.
А вот в Windows 7 такая служба имеется и называется она Microsoft .NET Framework NGEN. Отключение ее не составляет труда. Если найдете у себя в Windows 8, 10 и 11 эту службу, отключите ее, выбрав для нее тип запуска «Отключена».
В крайнем случае вы можете получить права на файл mscorsvw.exe и переименовать его в mscorsvw.exe.bak, тем самым предотвратив его запуск, но всё же лучше так не делать.
А вот переустановить Microsoft .NET Framework и отключить, по всей видимости, связанную с NET Runtime Optimization Service службу телеметрии NVIDIA так это можно, говорят, некоторым пользователям это помогло.
Записки IT специалиста
Почему mscorsvw.exe сильно загружает процессор и как его можно ускорить
- Автор: Уваров А.С.
- 15.05.2015
Многие, наверное, замечали, что время от времени компьютер начинает сильно снижать производительность и виной этому процесс (или даже несколько процессов) mscorsvw.exe, который используется службой NET Runtime Optimization Service. Но не все знают, для чего предназначена эта служба и каким образом можно ускорить ее работу. Чтобы устранить этот пробел мы, на основе материалов инженерной команды NET, подготовили данную статью.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Для чего нужен и как работает .NET Framework?
.NET Framework — программная платформа от компании Microsoft, которая позволяет разработчикам создавать приложения, не привязываясь к аппаратным особенностям платформы и версиям ОС. Написанное с помощью .NET Framework приложение будет одинаково работать в любой системе, где установлена данная платформа. Такой подход также позволяет облегчить разработку и устранить возможные конфликты версий библиотек, так как наличие необходимой версии платформы автоматически подразумевает наличие необходимых компонентов и их не требуется включать в поставку программы. В настоящий момент .NET Framework выпускается как свободное ПО под лицензией MIT.
Для написания программного кода может быть использовать один из поддерживаемых платформой языков программирования, который затем компилируется в промежуточный байт-код CIL (Common Intermediate Language) и исполняется виртуальной машиной платформы CLR (Common Language Runtime). Использование виртуальной машины позволяет исполнять один и тот же код на системах с различными версиями аппаратной и программной платформы.
Проще говоря, он будет одинаково эффективно работать и на одноядерном стареньком Pentium 4 c 32-битной системой, и на многоядерном Core i7 в современной 64-битной среде. При этом разработчику не надо вникать в тонкости работы платформы, это задача разработчиков .NET Framework.
Как можно ускорить запуск и работу .NET Framework приложений?
Несмотря на то, что современные процессоры уже давно позволяют эффективно использовать JIT-компиляцию (just in time, компиляция «на лету»), несложно заметить, что компилятор CLR будет выполнять много повторяющихся действий, каждый раз компилируя в машинный код используемой платформы CIL-код общих библиотек и компонентов. Этого можно избежать, если выполнить компиляцию один раз и разместить готовый машинный код в кэше.
Для выполнения этой задачи предназначен механизм NGEN (The Native Image Generator) — генератор образов в машинном коде. Чтобы NGEN мог выполнять свою задачу в фоновом режиме предназначена служба .NET Runtime Optimization Service (mscorsvw.exe), которая запускается каждый раз после того, как набор библиотек .NET Framework был изменен.
Когда это происходит? Прежде всего после установки данной платформы, но это довольно редкий сценарий, тем более что .NET Framework уже входит в состав современных версий Windows. Однако обновления для .NET Framework выпускаются достаточно регулярно, что заставляет mscorsvw.exe выполнять перекомпиляцию библиотек платформы.
Как поясняют сотрудники инженерной команды NET, система обновлений Windows Update, через которую получает обновления и .NET Framework, настроена по-умолчанию таким образом, чтобы производить обновление системы в ночное время, когда компьютер не используется пользователем. Но иногда это сделать невозможно, например, если компьютер выключен, поэтому процесс обновления может начаться и посреди дня, в этот момент вы можете заметить снижение производительности системы, так как основные ресурсы будут заняты mscorsvw.exe.
В Windows 8 на смену NGEN пришел более совершенный механизм AutoNGEN. Теперь компилируются только те библиотеки, которые фактически используются на ПК, и данная работа производится только в период простоя, при необходимости служба способна остановить свою работу в течении 2 секунд. Начиная с Windows 8.1 ряд важных библиотек .NET Framework уже имеют готовые образы в машинном коде для большинства актуальных платформ и могут быть получены через Windows Update, что позволяет отказаться от их компиляции на клиентских ПК.
Как заставить mscorsvw.exe работать быстрее?
Начавшийся в разгар рабочего дня ресурсоемкий процесс оптимизации .NET Framework конечно же неприятен и, чаще всего, пользователи, не разбираясь в причинах происходящего, завершают работу mscorsvw.exe или идут еще дальше и отключают службу. Однако делать этого не стоит, так как .NET Runtime Optimization Service выполняет важную задачу и поможет вашим приложениям работать эффективнее. В тоже время есть способ выполнить эту работу быстрее, по умолчанию служба использует только одно процессорное ядро, если разрешить ей использовать большее количество ядер (в настоящее время не более 6), то оптимизация будет выполнена за меньшее количество времени, и вы снова сможете вернуться к своей работе.
Для запуска NGEN без ограничения на количество используемых ядер инженерная команда NET подготовила специальный скрипт:
Вам нужно будет запустить его из командной строки с правами администратора. Данный скрипт успешно работает в системах до Windows 7 / Server 2008R2 включительно. При его запуске в среде Windows 8.1 мы сталкивались с ошибками, поэтому для Windows 8 / Server 2012 следует использовать сценарий PowerShell (также никто не мешает его использовать и в среде Windows 7):
Так как PowerShell, к сожалению, еще недостаточно знаком многим системным администраторам, остановимся на запуске сценария более подробно. Если вы просто попытаетесь его выполнить, то скорее всего получите следующую ошибку:
По умолчанию выполнение сценариев PowerShell запрещено даже Администратору, что в общем-то правильно с точки зрения безопасности. Чтобы узнать текущие разрешения запустим среду исполнения PowerShell с правами администратора и выполним команду:
В ответ вы получите политики для различных уровней: текущего сеанса, текущего пользователя или компьютера.
По-умолчанию политики не заданы: Undefined, что соответствует уровню Restricted, который разрешает запуск любых команд, но запрещает запуск скриптов. Для выполнения сценария нам нужно установить один из режимов разрешающий выполнение скриптов: Unrestricted или Bypass. В целях безопасности такой режим следует устанавливать только для текущего сеанса, т.е. на уровне Process. Для этого выполним команду:
После чего можем успешно выполнить наш сценарий без каких-либо ошибок:
Что именно делает данный сценарий и можно ли обойтись без него?
Данные скрипты были подготовлены для тех, кто не хочет иметь дело с командной строкой, если же вы предпочитаете делать все самостоятельно, то можете выполнить несколько команд вручную:
.NET Framework 4 в Windows 7 и более ранних версиях:
В 64-битных системах также выполните:
.NET Framework 4 в Windows 8 / 8.1:
В 64-битных системах также выполните:
Если вы используете .NET 2.0 или 3.5, то команды будут следующими:
В 64-битных системах также выполните:
Эти команды должны быть выполнены в командной строке работающей с правами администратора, в противном случае вы получите ошибку выполнения.
Подготовлено по материалам:
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Исправлено: высокая загрузка ЦП службой .NET Runtime Optimization —
Эта проблема обычно возникает случайным образом, но она также может возникать после установки обновления в .NET Framework. Исполняемый файл процесса — mscorsvw.exe, и он будет отображаться в диспетчере задач под этим именем или как .NET Runtime Optimization Service. Он запускается не так часто, и это служба, которая работает для оптимизации .NET Framework, которая, в свою очередь, гарантирует, что приложения и программы, зависящие от нее, работают быстрее.
.NET Runtime Optimization Service Высокая загрузка ЦП
Однако эта оптимизация иногда занимает слишком много времени, и пользователи сообщают, что при каждом запуске она потребляет большой процент ресурсов ЦП. Это также продолжается в течение нескольких дней. Следуйте методам, которые мы подготовили ниже, чтобы попытаться решить эту проблему.
Что является причиной высокой загрузки ЦП службы оптимизации среды выполнения .NET?
Официальный ответ заключается в том, что процесс должен перекомпилировать свои библиотеки и запускаться только тогда, когда компьютер не используется. Microsoft также заявляет, что этот процесс не должен занимать более пары минут. Однако это не тот случай, и люди ждут больше недели без прогресса. Вот несколько причин:
- Это вообще работает медленно и вы можете попытаться ускорить его, выполнив определенные команды.
- Там может быть вредоносная программа работает на вашем компьютере который либо маскирует себя как сервис, либо сервис заражен. Попробуйте запустить сканер вредоносных программ.
- Возможно, служба повреждена и вы должны попробовать перезапустить его.
Решение 1. Оптимизация процесса
Не рекомендуется немедленно завершать этот процесс, так как он действительно поможет вашему компьютеру и тому, как работают приложения и игры. Однако есть несколько способов ускорить процесс, просто запустив эту полезную команду или запустив скрипт для того же эффекта. Это должно позволить процессу использовать больше ядер ЦП, что позволит ему быстрее завершить работу. Проверьте это ниже!
- Ищи «Командная строкаЛибо прямо в меню «Пуск», либо нажав кнопку поиска рядом с ним. Щелкните правой кнопкой мыши по первому результату, который появляется вверху, и выберите «Запустить от имени администратораВариант.
Запуск командной строки от имени администратора
- Пользователи, использующие более старую версию Windows, могут использовать комбинацию клавиш Windows Logo Key + R, чтобы вызвать Запустить диалоговое окно. Введите «cmd» в поле и используйте комбинацию клавиш Ctrl + Shift + Enter, чтобы запустить командную строку от имени администратора.
- Скопируйте и вставьте команды, показанные ниже, и убедитесь, что вы нажимаете Войти Клавиша на клавиатуре после каждого. Среди первых двух команд выберите ту, которая соответствует вашей операционной системе (32-битная для первой и 64-битная для второй).
- Проверьте, не восстановилось ли использование ЦП в .NET Runtime Optimization Service!
альтернатива: Если вам неудобно запускать команды самостоятельно или вы используете более старую версию операционной системы Windows, вы можете использовать официальный скрипт, созданный Microsoft, который должен делать то же самое.
- Перейдите по этой ссылке, чтобы открыть страницу скрипта на GitHub. Перейдите к коду, щелкните правой кнопкой мыши необработанный кнопку и выберите Сохранить ссылку как… Убедитесь, что тип файла Windows Script File (* .wsf).
Сохранение скрипта из GitHub
- Найдите файл там, где вы его сохранили, и дважды щелкните, чтобы запустить его. Если вы сталкиваетесь с выбором программы для ее запуска, выберите Windows Script Host.
- Проверьте, решена ли проблема сейчас.
Решение 2. Сканирование компьютера на наличие вредоносных программ
Несмотря на то, что это звучит чрезмерно, заражение вредоносным ПО является одной из основных причин этой проблемы, и очень важно проверить компьютер на наличие вредоносных программ. Вредоносные программы захотят овладеть вашими ресурсами, и они обычно называют свои процессы чем-то похожим на файлы на вашем компьютере.
Здесь мы покажем вам, как сканировать ваш компьютер с помощью Malwarebytes, поскольку он часто показывает лучшие результаты, учитывая тот факт, что он действительно имеет обширную базу данных. Удачи!
- Malwarebytes Anti-Malware это удивительный инструмент против вредоносных программ с бесплатной версией, которую вы можете скачать с их официального сайта. Надеюсь, вам не понадобится полный пакет после решения этой проблемы (если только вы не хотите купить его и подготовить его к другим проблемам), поэтому обязательно загрузите пробную версию, нажав здесь.
Загрузка Malwarebytes
- Найдите исполняемый файл, который вы только что загрузили с их веб-сайта, в папке «Загрузки» на вашем ПК и двойной щелчок на нем, чтобы открыть его на вашем компьютере.
- Выберите, куда вы хотите установить Malwarebytes и следуйте инструкциям по установке который появится на экране для завершения процесса установки.
Установка Malwarebytes
- Откройте Malwarebytes, найдя его в меню «Пуск» или на рабочем столе и выберите сканирование опция доступна на главном экране приложения.
- Инструмент, вероятно, запустит процесс обновления, чтобы обновить свою вирусную базу, а затем продолжит сканирование. Пожалуйста, будьте терпеливы, пока процесс не закончится, что может занять некоторое время. Если на вашем компьютере обнаружена вредоносная программа, подтвердите ее наличие удаленный или же карантине.
Запуск сканирования в Malwarebytes
- Перезагрузите компьютер после завершения процесса сканирования проверьте наличие проблем со службой оптимизации .NET Runtime!
ЗаметкаВам также следует использовать другие сканеры безопасности, если вы можете определить тип вредоносного ПО, которое у вас есть на вашем компьютере (вымогателей, нежелательных программ и т. Д.). Кроме того, один сканер никогда не сможет распознавать и удалять все типы вредоносных программ, поэтому мы рекомендуем вам попробовать и другие!
Решение 3. Перезапуск службы
Перезапуск службы также перезапустит весь процесс, но на этот раз он должен завершиться быстрее, особенно если ошибка вызывала его неправильную работу. Проверьте это ниже.
- Откройте утилиту «Выполнить», используя комбинацию клавиш Windows + R на клавиатуре (нажмите эти клавиши одновременно. Введите «devmgmt.msc»В открывшемся окне без кавычек и нажмите кнопку ОК, чтобы открыть инструмент« Службы ».
Запуск диспетчера устройств
- Найдите NVIDIA Telemetry Container сервис в списке, щелкните по нему правой кнопкой мыши и выберите Properties из появившегося контекстного меню.
- Если служба запущена (вы можете проверить это рядом с сообщением о состоянии службы), вы должны остановить ее, нажав Стоп кнопка в середине окна. В любом случае, запустите его снова, нажав Начните
Запуск сервиса
- Убедитесь, что опция под Тип запуска меню в окне свойств сервиса установлено на автоматическая прежде чем приступить к другим шагам. Подтвердите любые диалоговые окна, которые могут появиться при изменении типа запуска.
При нажатии кнопки «Пуск» может появиться следующее сообщение об ошибке:
«Windows не может запустить службу на локальном компьютере. Ошибка 1079: учетная запись, указанная для этой службы, отличается от учетной записи, указанной для других служб, работающих в том же процессе ».
Если это произойдет, следуйте инструкциям ниже, чтобы исправить это.
- Выполните шаги 1-3 из приведенных выше инструкций, чтобы открыть окно свойств сервиса. Перейдите к Войти в систему вкладку и нажмите на Просматривать… кнопка.
Войти >> Обзор