Rundll32.exe занимает много процессора, тогда активна заставка
Я использую Windows 8 Pro x64. Я заметил что Rundll32.exe
процесс занимает много процессорного времени (25%, что составляет 100% загрузки одного ядра), тогда я не использую компьютер, в частности, тогда активен sceensaver. И этот процесс немедленно прекращается, затем заставка исчезает (затем я перемещаю мышь или нажимаю клавишу на клавиатуре).
Я нашел это, потому что я использую специальную программу мониторинга процессов, которая также позволяет мне собирать информацию о процессе (это последняя информация, доступная из уже остановленного процесса):
Path = C:\WINDOWS\system32\rundll32.exe
User Name = NT AUTHORITY \ SYSTEM
PID/Parent PID = 4576 / 800
Started by = C:\WINDOWS\system32\services.exe
Virtual KB Curr = 149 872 Peak = 299 416
Working Set KB Curr = 54 732 Peak = 54 732
Page File KB Curr = 46 720 Peak = 46 720
System Pool KB Paged = 208 Nonpaged = 22
Private KB = 46 720
Handles Count = 385
Faults Count = 293 958
Windows = 0
Reads = 4 255 Read KB = 56 263
Writes = 1 Write KB = 0
Other IOs = 677 511 Other KB = 8 614
Из этой информации очевидно, что процесс занимает много операций чтения и никаких записей. Также он запускается диспетчером управления службами. Я никогда не замечал такого поведения в своей Windows 7 до обновления, и мне было интересно, не является ли это какой-то ошибкой, вызывающей или какой-то законной задачей сканирования системы?
Я использую Blank screen
Заставка, которая не использует какой-либо процессор. Я на самом деле подтвердил, что scrnsave.scr
также завершается, но не потребляет процессор. Процессор потребляется специально Rundll32.exe
что, очевидно, как-то связано с заставкой событий ВНИЗ.
Также я заметил, что он запускается не точно тогда, когда запускается ssaver, но через некоторое время после него (или, может быть, у него есть какой-то другой интервал времени бездействия до его запуска), но останавливается всегда, тогда ssaver останавливается. И поскольку я обнаружил, что это фактически заканчивается через некоторое время, я оцениваю последнюю встречу как приблизительно 2 минуты работы (но я не уверен, всегда ли это занимает так много времени).
И (как я обнаружил только сейчас) кажется, что он не запускается снова после окончания своей работы. Похоже, что на самом деле просто происходит какая-то законная работа системы, тогда система бездействует. Это имеет смысл, поскольку требует много ресурсов процессора, поэтому не замедляет процесс пользователя (в некоторой степени аналогично тому, как ngen.exe
работает).
3 ответа
Я не совсем уверен, но, насколько я мог в этом разобраться, это было как-то связано с фоновыми рутинами антивирусного программного обеспечения Dr.Web (возможно, какое-то обновление базы данных или внутренние проверки). Однако я не могу быть уверен на 100%.
Поскольку это не похоже на какое-то время неисправности, я не хочу тратить больше времени на исследования.
Обновление: я замечаю такое же поведение на моем ноутбуке на базе Windows 7 HB x64, на котором также установлен тот же антивирус Dr.Web, так что, похоже, так оно и есть - своего рода фоновые программы Dr.Web.
Установите Windows Performance Toolkit, запустите командную строку с правами администратора и выполните эту команду и сверните окно:
xperf -on latency -stackwalk profile -buffersize 1024 -MaxFile 256 -FileMode Circular && timeout -1 && xperf -d HighCPUUsage.etl
После того, как вы воспроизвели проблему, вернитесь в CMD и нажмите любую кнопку, которую хотите остановить, чтобы остановить ведение журнала. Теперь застегните HighCPUUsage.etl
как 7z и загрузить его.
Вероятно, что rundll32.exe загружает заставку.
большинство экранных заставок бесполезны, они симпатичны, но просто сжигают процессор, графический процессор, и вы выигрываете больше, просто приостанавливая, а затем выключая экран. Вы можете поставить заставку, но только на одну минуту, прежде чем приостановить экран. После приостановки экранная заставка не должна работать (я не знаю, действительно ли Windows 8 выключала экранную заставку при приостановке экрана, протестируйте ее)