Подтвердить что ты не робот

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

Я использую wmi и python, чтобы отслеживать поведение процесса, выполняющегося на моей машине.

from win32com.client import GetObject
wmi = GetObject('winmgmts:')
processes = wmi.InstancesOf('Win32_Process')

for process in processes:
    print process.ProcessId, process.Name 

У Win32_Process есть много информации, но я ничего не вижу для отслеживания потребления процессора. Окно Task Monitor показывает эту информацию, поэтому я думаю, что ее можно получить.

Я думал, что свойство WorkingSetSize передает потребление памяти процессу, но я вижу различное значение из того, что задано TaskMonitor.

Как получить эти 2 значения для данного процесса?

Обновление: Монитор задач отображает параметр PrivateWorkingSetSize, который, похоже, недоступен в Win32_Process. В чем разница между рабочими параметрами WorkSetSize и PrivateWorkingSetSize?

4b9b3361

Ответ 1

Я уверен, что вы хотите, чтобы классы WMI perf Win32_PerfFormattedData_PerfProc_Process или Win32_PerfRawData_PerfProc_Process

например. их свойства PercentProcessorTime и WorkSet

Обратите внимание, что классы Perf требуют много усилий для понимания.

Но эти классы WMI должны предоставить вам всю информацию, которую вы ищете.