Я хотел бы отслеживать производительность потоков процесса, включая дочерние потоки. Возможно ли это с помощью perfmon? В настоящее время кажется, что нужно только начать мониторинг уже открытых потоков.
Perfmon довольно примитивен. Он позволяет просматривать существующие значения счетчиков производительности, но не будет динамически добавлять и вычитать счетчики за вас.
Возможно, вам нужно приложение, которое воля динамически добавлять для вас новые значения счетчиков, например, когда новый поток запускается в процессе, вы хотите добавить этот новый поток в набор счетчиков. Sysinternals Process Explorer сделает это, если вы посмотрите на свойства процесса и перейдете на вкладку Threads. Новые потоки выделяются зеленым на несколько секунд, а при выходе потоки выделяются красным на несколько секунд.
Вы также можете реализовать более грубую систему самостоятельно с помощью WMI или Powershell ... что-то, что повторяется каждые пару секунд ...
(Get-Process Powershell).Threads | Select Id, TotalProcessorTime | FT -Autosize
Id TotalProcessorTime
-- ------------------
2184 00:00:00.1562500
4316 00:00:00
2848 00:00:00
3604 00:00:00
1456 00:00:00.0156250
4564 00:00:00
3216 00:00:00.7968750
1396 00:00:00