Как получить точное использование процессора и памяти с помощью Python?Python

Программы на Python
Ответить
Anonymous
 Как получить точное использование процессора и памяти с помощью Python?

Сообщение Anonymous »

Я пытаюсь создать монитор процессов, но не могу получить точные результаты, сравнивая свои результаты с диспетчером задач Windows.
Я использую psutil, который, кажется, работает нормально, если смотреть на общее использование процессора и памяти, но не очень точен для одного процесса. Использование памяти всегда выше, чем в диспетчере задач, а ЦП всегда случайным образом.
Я устанавливаю процесс один раз при инициализации с помощью self.process = psutil.Process(self.pid), а затем вызываю приведенный ниже метод раз в секунду, процесс в диспетчере задач работает с постоянной загрузкой процессора 5,4% и 130 МБ оперативной памяти, однако приведенный ниже код дает:

Код: Выделить всё

CPU: 12.5375
Memory 156459008
CPU: 0.0
Memory 156459008
CPU: 0.0
Memory 156459008
CPU: 0.0
Memory 156459008
CPU: 12.5375
Memory 156459008
CPU: 0.0
Memory 156459008
CPU: 0.0
Memory 156459008
Пример кода:

Код: Выделить всё

def process_info(self):
# I am calling this method twice because I read the first time gets ignored?
ignore_cpu = self.process.cpu_percent(interval=None) / psutil.cpu_count()
time.sleep(0.1)
process_cpu = self.process.cpu_percent(interval=None) / psutil.cpu_count()

# I also tried the below code but it was much worse than above
# for j in range(10):
#     if j == 0:
#         test_list = []
#     p_cpu = self.process.cpu_percent(interval=0.1) / psutil.cpu_count()
#     test_list.append(p_cpu)
# process_cpu = (sum(test_list)) / len(test_list)

# Memory is about 25mb higher than task manager
process_memory = self.process.memory_info().rss

print(f"CPU: {process_cpu}")
print(f"Memory: {process_memory}")
я неправильно использую psutil или есть более точный способ получить данные?

Подробнее здесь: https://stackoverflow.com/questions/736 ... ith-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»