Вы можете получить этот уровень детализации в Vista или более поздней версии, используя трассировку событий для Windows (ETW) и событие CSwitch (которое генерируется при каждом переключении контекста).
Различные инструменты (например, Windows Performance Toolkit ) собирают и визуализируют эти данные.
Однако это не поддерживается в Windows XP.
Если вы просто хотите знать, каков ваш типичный параллелизм (то есть, сколько ваших потоков запущено в данный момент времени), вы можете регулярно выбирать данные потока perfmon (из HKEY_PERFORMANCE_DATA). Счетчик «Thread State» даст вам мгновенное состояние каждого потока в вашем процессе (т.е. работает ли каждый поток или нет). Очевидно, что этот процесс выборки ограничит максимальный параллелизм до (количество процессоров - 1).
Но вам действительно нужно это много деталей? GetProcessTimes обычно достаточно.
Обновление
Вы можете запустить свое приложение на тестовом компьютере и просто измерить загрузку каждого процессора с помощью perfmon. Вам также следует измерить загрузку ЦП каждого процесса, чтобы убедиться, что больше ничего не работает неожиданно.
Чтобы получить данные для отчета, запустите perfmon от имени администратора.
- Перейдите к «Performance Monitor» с правой стороны, чтобы отобразить график производительности в реальном времени. Выберите объекты / счетчики, которые вы хотите отслеживать (т. Е. «% Времени процессора» для всех процессоров и процессов). Perfmon должен начать сбор данных в режиме реального времени.
- Щелкните правой кнопкой мыши по графику и выберите частоту захвата (например, если ваше приложение работает часами, вы, вероятно, не хотите данных каждую секунду).
- Щелкните правой кнопкой мыши узел «Performance Monitor» в правом дереве и выберите «New | Data Collector Set». Введите имя для него и нажмите другие значения по умолчанию.
- Перейдите к своему набору сборщиков данных справа (в разделе «Наборы сборщиков данных | Определено пользователем»). Вы можете начать и остановить сбор данных, используя кнопки панели инструментов (или щелкнув правой кнопкой мыши).
- Теперь у вас есть данные, которые возвращаются на график монитора производительности и выбираете «Просмотр данных журнала» (вторая кнопка панели инструментов). Выберите файл журнала на вкладке «Источник». Это отобразит график ваших захваченных данных.
- Щелкните правой кнопкой мыши на графике и выберите «Сохранить данные как ...». Вы можете выбрать CSV или TSV.
И это все.