Как таймеры среднего счетчика производительности связываются с их базой? - PullRequest
19 голосов
/ 10 марта 2010

Я добавляю некоторые счетчики производительности в свой проект на c # и создаю новую PerformanceCounterCategory. В этой категории я хотел бы иметь несколько счетчиков / таймеров, которые отслеживают разные вещи. Мне нужно использовать несколько средних таймеров, и я пытаюсь понять, как счетчик AverageBase связывается с правильным счетчиком AverageTimer32, когда их несколько в CoutnerCreationDataCollection.

Пара вопросов:
1. Во-первых, это правильный способ сделать это? Все образцы, которые я обнаружил, имеют только один средний таймер.
2. И если ответ на первый вопрос положительный, то правильно ли я считаю, что первый счетчик AverageBase добавлен в коллекцию после AverageTimer32? Я нашел ссылку в статье на них, которые нужно добавить по порядку.

Вот пример того, что я пытаюсь сделать:

var dataColl = new CounterCreationDataCollection
{
  new CounterCreationData
  {
    CounterType = PerformanceCounterType.AverageTimer32,
    CounterName = "AverageTime1",
    CounterHelp = "AverageTime1_Help"
  },
  new CounterCreationData           // Does this get linked to AverageTime1 simply
                                    // because it is being added after it?
  {
    CounterType = PerformanceCounterType.AverageBase,
    CounterName = "AverageTime1Base"
  },
  new CounterCreationData
  {
    CounterType = PerformanceCounterType.AverageTimer32,
    CounterName = "AverageTime2",
    CounterHelp = "AverageTime2_Help"
  },
  new CounterCreationData
  {
    CounterType = PerformanceCounterType.AverageBase,
    CounterName = "AverageTime2_Base"
  },
}

PerformanceCounterCategory.Create(
                            "MyCategoryName"
                            , "My Category Help"
                            , PerformanceCounterCategoryType.SingleInstance
                            , dataColl);

1 Ответ

19 голосов
/ 10 марта 2010

Позиция. Счетчики, которые требуют базы, должны немедленно сопровождаться базой в списке определений. Итак, ваш код верен, у вас есть два AverageTimer32, за которыми следует AverageBase.

В качестве примечания: когда вам надоест вводить один и тот же код снова и снова, вам следует рассмотреть Использование XSLT для генерации кода счетчиков производительности .

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