Как убить процесс с минимальным потреблением процессора

Я искал сценарий Python для уничтожения конкретного запущенного процесса (ов). Я получил скрипт для получения списка всех запущенных в данный момент процессов. Поэтому я сделал некоторые изменения, и это работает следующим образом:

Список с именем blackList хранит все нежелательные процессы, которые должны быть убиты. Скрипт перебирает извлеченные имена процессов и сравнивает их с содержимым черного списка. Если он совпадает, то этот процесс прекращается.

Код:

import psutil

blackList = ["SkypeHost.exe", "Music.UI.exe", "SearchUI.exe", "Video.UI.exe", "backgroundTaskHost.exe"]

while True:
  for proc in psutil.process_iter():
    try:
        pinfo = proc.as_dict(attrs=['pid', 'name', 'username'])
    except psutil.NoSuchProcess:
        pass
    else:
        for i in blackList:
            if pinfo["name"] == i:
                proc.kill()

Сценарий работает нормально, но он потребляет большую часть моего процессора.

Без запуска скрипта

Без запуска скрипта

Пока работает скрипт

Пока работает скрипт

Есть ли способ минимизировать это потребление? Почему он потребляет так много процессора?

Мой процессор: Intel(R) Core(TM) i5-7200U CPU @ 2,50 ГГц

1 ответ

Решение
import time

и бросить time.sleep(some small time frame) в вашей петле.

дела while True без перерыва собирается побить ваш процессор.

Другие вопросы по тегам