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

Как выяснить, связан ли мой процесс с ЦП, привязка ввода/вывода, привязка к памяти или

Я пытаюсь ускорить время, затраченное на компиляцию моего приложения, и одна вещь, которую я изучаю, - проверить, какие ресурсы, если таковые имеются, я могу добавить к машине сборки, чтобы ускорить процесс. С этой целью, как я могу понять, буду ли я инвестировать в большее количество процессоров, больше оперативной памяти, лучший жесткий диск или связан ли процесс с каким-то другим ресурсом? Я уже видел это (Как проверить, связано ли приложение cpu-bound или связанное с памятью?), и я ищу больше советов и указателей.

Что я пробовал до сих пор:

  • Время процесса на машине сборки и на моей локальной машине. Я обнаружил, что машина для сборки занимает в два раза больше времени, чем моя машина.

  • Запустите "Монитор ресурсов" и посмотрите на использование ЦП, использование памяти и использование диска во время процесса - при этом у меня проблемы с интерпретацией чисел, главным образом потому, что я не понимаю, что каждый столбец означает, и как это переводится в виртуальную машину по сравнению с физическим полем и что это означает с многопроцессорными ящиками.

4b9b3361

Ответ 1

Пуск > Выполнить > perfmon.exe

Монитор производительности может отображать множество системных показателей, которые вы можете использовать, чтобы вывести, где узкие места включают загрузку процессора, операции io, образы профайлов и т.д.

Кроме того, Platform SDK теперь включает инструмент под названием XPerf, который может предоставить информацию, более релевантную разработчикам.

Ответ 2

Random-pausing расскажет вам, какой у вас процент разделения между CPU и временем ввода-вывода.

В принципе, если вы захватите 10 случайных стеков, а если 80% (например) времени находится в I/O, то на 8 +/- 1.3 образцах стек достигнет системной процедуры, которая читает или записывает буфер. Если вам нужна более высокая точность, возьмите больше образцов.