Эта проблема проявляется случайным образом, но также может возникнуть после установки обновления .NET Framework. Исполняемый файл mscorsvw.exe может отображаться в Диспетчере задач под этим именем или как .NET Runtime Optimization Service. Он запускается не так часто, и эта служба, предназначенная для оптимизации NET Framework, гарантирует, что приложения зависящие от нее работают быстрее.
Иногда эта оптимизация занимает слишком много времени, и при каждом запуске потребляет высокий процент ресурсов процессора. Часто высокая нагрузка ЦП со стороны этого процесса наблюдается в течение нескольких дней. Есть несколько решений решить эту проблему.
Почему .NET Runtime Optimization Service сильно грузит процессор?
Официальный ответ заключается в том, что процесс должен перекомпилировать свои библиотеки и только во время простоя компьютера. Майкрософт также заявляет, что процесс занимает не более нескольких минут. Но это не так. В некоторых случаях пользователи сообщают, что NET Runtime Optimization Service может сильно грузить процессор даже больше недели. Вот некоторые причины:
- Если процесс работает долгое время, то можно попытаться ускорить его, выполнив определенные команды.
- На компьютере присутствует вредоносное ПО, которое либо замаскировалось под эту службу, либо ее исполняющий файл был заражен. Для решения нужно просканировать компьютер на вирусы и вредоносный код.
- Служба повреждена или сбой при загрузке, попробуйте перезапустить ее.
Решение 1: Оптимизация процесса
В общем, не рекомендуется завершать этот процесс сразу, так как он нужен для актуализации библиотек и способа запуска приложений и игр. Есть различные способы его ускорить — от запуска простых команд до выполнения более сложных скриптов. Они позволят процессу использовать больше ядер процессора, тем самым быстрее завершить работу.
Правым кликом мыши на кнопке Пуск вызовите контекстное меню и найдите пункт «Командная строка». Или наберите это название в строке поиска, кликните правой кнопкой мыши на первый результат и выберите опцию «Запуск от имени администратора».
Скопируйте по очереди указанные команды и кликните на Enter после вставки каждой. Среди первых двух команд выполните одну из них в соответствии с операционной системой (первая для 32-разрядной версии ОС, вторая для 64-разрадной):
- cd c:\Windows\Microsoft.NET\Framework\v4.0.30319
cd c:\Windows\Microsoft.NET\Framework64\v4.0.30319 - ngen.exe executequeueditems
Проверьте, снизилась ли нагрузка на процессор, создаваемая службой NET Runtime Optimization Service.
Также можно воспользоваться официальным скриптом Майкрософта, который делает то же самое.
- Наберите в поисковике «drainngenqueue wsf» и перейдите на сайт GitHub, чтобы открыть страницу скрипта.
- Кликните правой кнопкой мыши в начале кода на кнопку «Raw» и выберите «Сохранить ссылку как …», убедившись, что расширение файла Windows Script File (*.wsf).
- Найдите файл в том месте на диске, в котором сохранили и запустите его. Если столкнулись с выбором программы для ее загрузки, выберите Windows Script Host.
После проверьте в Диспетчере задач процент нагрузки на процессор.
Решение 2: Проверка на вирусы
Вирусное заражение является одной из ведущих причин высокой нагрузки службой NET Runtime Optimization. Вредоносные программы в попытке завладеть ресурсами процессора, могут замаскировать свои процессы под эту службу.
Для этого просканируйте компьютер антивирусной утилитой Malwarebytes, которая показывает лучшие результаты, поскольку обладает обширной базой данных.
Malwarebytes Anti-Malware – эффективный инструмент для защиты от вредоносных программ с бесплатной версией. Возможно, вам не потребуется полный пакет после решения этой проблемы, поэтому можно воспользоваться пробной версией.
После загрузки выберите место для установки Malwarebytes и следуйте инструкциям на экране до завершения инсталляции.
Откройте антивирус и выберите опцию сканирования на главном экране приложения.
Инструмент, вероятно, запустит процедуру обновления своей вирусной базы данных, а затем продолжит сканирование. Если обнаружено вредоносное ПО, подтвердите его удаление или карантин.
Перезапустите компьютер после завершения сканирования и проверьте, насколько .NET Runtime Optimization Service теперь грузит процессор.
Также нужно воспользоваться и другими программами защиты ПК. Поскольку один сканер не сможет распознать и удалить все типы вредоносных программ.
Решение 3: Перезапуск службы
Для решения высокой нагрузки ЦП попробуйте перезапустить службу. После NET Runtime Optimization Service должен завершиться быстрее, если высокое потребление ресурсов процессора связано со сбоем при его запуске.
- Выведите на экран диалоговое окно «Выполнить» комбинацией клавиш Windows + R. Наберите команду devmgmt.msc и подтвердите ее выполнение на Enter.
- Найдите в списке Microsoft.NET Framework NGEN v4.0.30319_X(86 или 64, в зависимости от разрядности операционной системы), кликните правой кнопкой мыши и выберите Свойства в контекстном меню.
- Если служба запущена остановите ее и запустите снова.
- Перед выполнением других действий убедитесь, что параметр в меню «Тип запуска» имеет значение Автоматически. Теперь проверьте, снизилась ли нагрузка на процессор.
При нажатии кнопки «Запустить» может возникнуть сообщение об ошибке: «Ошибка 1079: учетная запись, указанная для этой службы отличается от учетной записи, указанной для иных в том же процессе».
Перейдите на вкладку «Вход в систему» и нажмите кнопку Обзор. В поле «Введите имя выбираемых объектов» впишите имя учетной записи, нажмите «Проверить имена» и дождитесь, пока имя станет доступным.
Нажмите на ОК и введите пароль, если появится соответствующий запрос.
Инженер-программист