Подтвердить что ты не робот

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

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

Несколько вопросов:
 1. Во-первых, это правильный способ сделать это? В образцах, которые я нашел, есть только один средний таймер.
 2. И если ответ на первый вопрос - да, то правильно ли я считаю, что первый счетчик Средней базы добавлен в коллекцию после 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);
4b9b3361

Ответ 1

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

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