Практическое руководство. Добавление и удаление экземпляров счетчиков производительности
Обновлен: Ноябрь 2007
Удаление и добавление экземпляров счетчика производительности можно выполнять динамически в процессе работы со счетчиками и категориями. Например, для каждого пользователя коммерческого веб-приложения можно добавить экземпляр так, чтобы появилась возможность отслеживать сведения о действиях пользователей. Затем, по окончании срока действия пользовательского сеанса, экземпляр можно удалить.
Добавить экземпляры можно путем задания счетчику необработанного значения. Если для счетчика отсутствует экземпляр, то он создается при первой установке свойства RawValue, а все последующие действия с необработанным значеним воздействуют на этот экземпляр, если не указано иное. Дополнительные экземпляры можно создать, задав имя нового экземпляра и затем присвоив экземпляру значение.
Примечание. |
---|
В процессе установки значения происходит создание экземпляра, а не задание имени нового экземпляра. |
В отличие от счетчиков, которые не могут быть добавлены к существующей категории, кроме как в процессе создания категории, экземпляры могут добавляться и удаляться из определенных пользователем категорий в любой момент времени. Для переключения между экземплярами можно использовать свойство InstanceName.
Для удаления экземпляра пользовательского счетчика производительности из памяти можно воспользоваться методом RemoveInstance. Предположим, например, что имеется коммерческое веб-приложение, использующее категорию OrderInProgress и поддерживающее экземпляры покупательской корзины каждого пользователя. Когда пользователь добавляет первый элемент в корзину, приложение создает новый экземпляр для этого пользователя. По завершении пользователем работы с заказом в приложении выполняется удаление экземпляра. В процессе работы с заказом обновление экземпляра производится с помощью таких счетчиков, как NumberofItemsinCart, TimeSinceCreation и NumberofItemsAddedPerSecond.
Невозможно удалить экземпляры из счетчиков производительности, являющихся составной частью Windows. Если в компоненте PerformanceCounter отсутствует ссылка на допустимый экземпляр, то при вызове этого метода будет создано исключение.
Примечание. |
---|
В Microsoft Windows NT версии 4.0 класс PerformanceCounter поддерживается не полностью. Данные из системных счетчиков доступны для чтения, но пользовательские счетчики нельзя создавать, удалять, а также записывать в них данные. |
Добавление экземпляра счетчика производительности
Создайте категории и счетчики обычным способом. Дополнительные сведения см. в разделе Практическое руководство. Создание категорий счетчиков производительности.
Задайте в качестве значения свойства InstanceName уникальное имя экземпляра, после чего задайте значение свойству RawValue экземпляра.
В следующем примере показан способ создания нескольких экземпляров существующей категории счетчиков производительности.
' Assumes the category and counter have already been created. Dim myCounter As New System.Diagnostics.PerformanceCounter( _ "cat", "counter", "instance1", False) ' Set the raw value to automatically create instance1. myCounter.RawValue = 100 ' State that you will now be working with a different instance. myCounter.InstanceName = "instance2" ' Setting the value actually creates instance2. myCounter.RawValue = 200
// Assumes category and counter have been created. System.Diagnostics.PerformanceCounter myCounter = new System.Diagnostics.PerformanceCounter( "cat", "counter", "instance1", false); // Set the raw value to automatically create instance1. myCounter.RawValue = 100; // State that you will now be working with a different instance. myCounter.InstanceName = "instance2"; // Setting the value actually creates instance2. myCounter.RawValue = 200;
Удаление экземпляра счетчика производительности
Создайте экземпляр компонента PerformanceCounter, подключенный к счетчику, экземпляр которого необходимо удалить. Дополнительные сведения см. в разделе Практическое руководство. Создание экземпляров компонента PerformanceCounter.
Установите удаляемый экземпляр в качестве значения свойства InstanceName.
Вызовите метод RemoveInstance компонента.
В следующем примере показан способ удаления из счетчика экземпляра Reference.
' Assumes that you have configured PerformanceCounter1 to ' interact with the appropriate counter. PerformanceCounter1.InstanceName = "Reference" PerformanceCounter1.RemoveInstance()
// Assumes that you have configured PerformanceCounter1 to // interact with the appropriate counter. PerformanceCounter1.InstanceName = "Reference"; PerformanceCounter1.RemoveInstance();
См. также
Задачи
Практическое руководство. Создание экземпляров компонента PerformanceCounter