Какая рабочая парадигма Windows Performance Counter? - PullRequest
2 голосов
/ 23 июня 2010

Я только что закончил читать эту статью о том, как создать счетчик производительности и обновить значение счетчика. Но меня немного смущает рабочая парадигма счетчика производительности Windows. Предположим, есть 2 программы A и B, и A хочет узнать производительность B через некоторые счетчики производительности. Какой из следующих сценариев является правильным?

  • B создает / регистрирует некоторые счетчики производительности в Windows, а B отвечает за обновление значения счетчиков. А может быть система perfmon.exe . А не активно проверяет статус выполнения Б. Просто проверьте счетчики registerd и получите значение, которое предоставляется и обновляется B. Даже если A нет, B все равно всегда обновляет свои зарегистрированные счетчики производительности. Но разве это не какое-то бремя для производительности B?

  • A активно исследует состояние выполнения B и вычисляет значение счетчика производительности. В этой парадигме у B нет дополнительных ожогов.

    Короче говоря, кто отвечает за создание и обновление счетчиков производительности? Объектная программа, производительность которой измеряется? Или предметная программа, которая измеряет производительность объектной программы? Для программы А это сценарий исследования? или просто сценарий чтения?

Большое спасибо.

1 Ответ

1 голос
/ 24 июня 2010

Счетчики производительности может быть интересным вопросом, но какова ваша общая цель?Вы заинтересованы в том, чтобы узнать, как заставить программы работать быстрее?

Если нет, игнорируйте этот ответ.

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

Если есть узкое место (и естьвероятно), что если удаление приведет к некоторому сокращению времени во времени (например, на 30%), то самый большой и наиболее очевидный ключ к пониманию того, что это такое:

  • Что программа делает в этом30% времени?

Если вы возьмете 10 случайных выборок того, что он делает, то на 3 из 10 (более или менее) из этих выборок вы «поймаете его вакт "делать узкое место.Обратите внимание на одну вещь - мы спрашиваем «что».Мы не спрашиваем «сколько».

Тот факт, что на это требуется время, легко найти.Отладка сложна - вы должны отследить выполнение и поймать, что он идет не так.Найти узкие места легко - они открываются вам.

Вам не нужно измерять, чтобы найти.Как только вы найдете, вы можете измерить. Подробнее об этом ...

...