Я добавляю некоторые счетчики производительности к своему 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);
Должность. За счетчиками, для которых требуется база, в списке определений сразу должна следовать база. Итак, ваш код правильный, у вас есть два AverageTimer32, за каждым из которых следует AverageBase.
В качестве примечания: когда вам надоест набирать один и тот же код снова и снова, вам следует подумать о Использование XSLT для генерации кода счетчиков производительности .