Как я могу узнать, что является узким местом, замедляющим определенный процесс / всю систему?

Учитывая конкретный текущий процесс, есть ли способ узнать, какой элемент устройства в настоящее время является узким местом для его работы? Другими словами, является ли его текущее вычисление привязанным к процессору, привязанным к GPU, привязанным к памяти, IO-привязкой и т. Д.?

Ответы, которые работают для Windows XP, предпочтительнее, но все ответы приветствуются.

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

EDIT 2: кто-то спросил меня этот вопрос, и мой ответ был

Откройте диспетчер задач и выберите просмотр ошибок страницы для приложения – очень высокие подсчеты подсчета, что у вас недостаточно физической памяти. Проверьте использование ЦП – если он постоянно на 100%, это знак, который может быть недостаточно быстрым для этого приложения реального времени.

Это то, что я бы сделал, но он чувствует себя немного любительским, поэтому я ищу более точные и полные способы идентифицировать преступника.

Вы можете использовать инструменты Microsoft XPERF, чтобы ходить по стеклу и находить шеи бутылки. Вы можете просматривать результаты только в Vista / 7 (или сервере 2008), но вы можете запустить инструмент профиля на XP. Pigs Can Fly имеет несколько действительно хороших статей о стеке с XPERF.

Мы использовали его для поиска узких мест в нашей скорости загрузки и, наконец, имели доказательства, чтобы показать компании, чтобы удалить некоторые инструменты, которые занимали слишком много Disk IO при загрузке.

Вам нужно будет использовать профилировщик. Вам, вероятно, также потребуется доступ к исходному коду программы или, по крайней мере, к отладке символов.

  • Должно ли шифрование программного обеспечения влиять на «Скорость передачи данных на диске» из Windows Experience?
  • Как я могу узнать, что использует жесткий диск?
  • Как изменить приоритет ввода / вывода процесса или потока в Win7?
  • Ubuntu: инструмент для отображения активности диска в целом и по процессу
  • Использует ли компьютер меньше ресурсов, когда программы сведены к минимуму?
  • Почему это иногда занимает много времени для закрытия окон?
  • Как я могу определить виновника моего медленного закрытия Windows?
  • Самый быстрый способ объединить моментальные снимки в VirtualBox?
  • Производительность нескольких папок RAM по сравнению с одиночными палочками
  • Хороший жесткий диск OS X
  • Что такое разгон системы?
  • Давайте будем гением компьютера.