Поделиться через


Практическое руководство. Запись значений в счетчики производительности

Обновлен: Ноябрь 2007

Запись значения в счетчик выполняется путем увеличения или уменьшения текущего необработанного значения счетчика на положительную или отрицательную величину. Для этого используется метод IncrementBy класса PerformanceCounter.

wzdx16ez.alert_note(ru-ru,VS.90).gifПримечание.

При увеличении счетчика на отрицательную величину выполняется уменьшение счетчика на ее абсолютное значение. Например, при увеличении на 3 выполняется увеличение необработанного значения счетчика на 3. При увеличении на –3 выполняется уменьшение необработанного значения счетчика на 3.

Кроме того, для увеличения или уменьшения значения счетчика на единицу можно использовать методы Increment или Decrement. Данные методы обрабатываются намного быстрее метода IncrementBy.

Увеличивать можно лишь значения пользовательских счетчиков. Взаимодействие с системными счетчиками с помощью экземпляра компонента PerformanceCounter по умолчанию ограничено режимом "только для чтения". Перед увеличением значения пользовательского счетчика необходимо установить значение false для свойства ReadOnly экземпляра компонента, который используется для доступа к счетчику.

wzdx16ez.alert_note(ru-ru,VS.90).gifПримечание.

Существуют ограничения безопасности, влияющие на возможность использования счетчиков производительности. Дополнительные сведения см. в разделе Знакомство со способами выявления пороговых значений производительности.

wzdx16ez.alert_note(ru-ru,VS.90).gifПримечание.

В Microsoft Windows NT версии 4.0 класс PerformanceCounter поддерживается не полностью. Данные из системных счетчиков доступны для чтения, но пользовательские счетчики нельзя создавать, удалять, а также нельзя записывать в них данные.

Запись значений в счетчики производительности

  1. Создайте экземпляр PerformanceCounter и настройте его для взаимодействия с нужной категорией и счетчиком. Дополнительные сведения см. в разделе Практическое руководство. Создание экземпляров компонента PerformanceCounter или Практическое руководство. Настройка экземпляров компонента PerformanceCounter.

  2. Запишите значение одним из следующих способов:

    Действие

    Используемый метод

    Параметр

    Увеличить необработанное значение на единицу

    Increment

    Отсутсвует

    Уменьшить необработанное значение на единицу

    Decrement

    Нет

    Увеличить необработанное значение на величину больше единицы

    IncrementBy

    Положительное целое число

    Уменьшить необработанное значение на величину больше единицы

    IncrementBy

    Отрицательное целое число

    Установить в качестве необработанного значения произвольное целое число (вместо его увеличения)

    RawValue

    Положительное или отрицательное целое число

    В следующем коде показано несколько способов установки значений счетчика. В коде предполагается, что работа производится с приложением Windows Forms, содержащим текстовое поле с именем txtValue и три кнопки: одна — для увеличения необработанного значения счетчика на введенное в текстовое поле число, вторая — для уменьшения необработанного значения счетчика на единицу и третья — для установки в качестве необработанного значения счетчика введенного в текстовое поле числа.

    Private Sub btnIncrement_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles btnIncrement.Click
        PerformanceCounter1.ReadOnly = False
        PerformanceCounter1.IncrementBy(CLng(txtValue.Text))
    End Sub
    
    Private Sub btnDecrement_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles btnDecrement.Click
        PerformanceCounter1.ReadOnly = False
        PerformanceCounter1.Decrement()
    End Sub
    
    Private Sub btnSetValue_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles btnSetValue.Click
        PerformanceCounter1.ReadOnly = False
        PerformanceCounter1.RawValue = CLng(txtValue.Text)
    End Sub
    
     protected void btnIncrement_Click(object sender, EventArgs e)
        {
            performanceCounter1.ReadOnly = false;
            performanceCounter1.IncrementBy(long.Parse(txtValue.Text));
        }
    
        protected void btnDecrement_Click(object sender, EventArgs e)
        {
            performanceCounter1.ReadOnly = false;
            performanceCounter1.Decrement();
        }
    
        protected void btnSetValue_Click(object sender, EventArgs e)
        {
            performanceCounter1.ReadOnly = false;
            performanceCounter1.RawValue = long.Parse(txtValue.Text);
        }
    

См. также

Основные понятия

Знакомство со способами выявления пороговых значений производительности

Получение значений счетчика производительности