Накладные расходы на настройку счетчиков производительности, как правило, недостаточно высоки, чтобы беспокоиться (настройка области общей памяти и некоторых объектов .NET, а также накладные расходы CLR, поскольку CLR на самом деле делает это для вас). Здесь я имею в виду классы, такие как PerformanceCounter.
Накладные расходы на регистрацию счетчиков производительности могут быть довольно медленными, но, как правило, это не вызывает беспокойства, поскольку оно должно произойти один раз во время установки, так как вы хотите изменить состояние машины. Это будет затмевать любое копирование, которое вы делаете. Обычно это не то, что вы хотите сделать во время выполнения. Здесь я имею в виду PerformanceCounterInstaller.
Накладные расходы на обновление счетчика производительности обычно сводятся к стоимости выполнения операции блокировки в общей памяти. Это медленнее обычного доступа к памяти, но является примитивом процессора (таким образом, он получает атомные операции во всей подсистеме памяти, включая кеши). Как правило, эта стоимость не стоит беспокоиться. Это может быть в 10 раз больше нормальной работы с памятью, что потенциально хуже в зависимости от обновления и того, что противоречит потокам и процессорам. Но учтите это, что буквально невозможно сделать лучше, чем блокированные операции для межпроцессного взаимодействия с атомными обновлениями, и блокировки не проводятся. Здесь я имею в виду PerformanceCounter.Increment и аналогичные методы.
Накладные расходы на чтение счетчика производительности обычно считаются из общей памяти. Как говорили другие, вы хотите попробовать в разумный срок (как и любой другой выборки), но просто подумайте о PerfMon и попытайтесь сохранить выборку в человеческом масштабе (подумайте секунды вместо миллисекунд), и у вас не будет никаких проблемы.
Наконец, обращение к опыту: счетчики производительности настолько легки, что они используются повсюду в Windows, от ядра до драйверов для пользовательских приложений. Microsoft полагается на них внутренне.
Совет: реальный вопрос с счетчиками производительности - это кривая обучения в понимании (умеренная) и измерение правильных вещей (кажется легким, но часто вы ошибаетесь).
Спасибо. Можете ли вы случайно указать мне на некоторые цифры? Мне любопытно, насколько они хороши ... – Boaz 2008-11-14 17:46:24