하나의 응용 프로그램 (.exe)에서 두 개의 AverageTimer32 성능 카운터를 정의하고 사용하려면 어떻게합니까?2 AverageTimer32 성능 카운터
추가 참고 사항 : 나는 작업의 다른 부분에서 소비 된 시간을 측정하려고합니다.
AverageTimer32 성능 카운터와 AverageBase가 있습니다. 그것은 작동합니다.
이제 AverageTimer32 성능 카운터를 두 개 추가하려고합니다. 다른 AverageBase 카운터를 추가하더라도 작동하지 않습니다. 나는 내가 뭔가에 대해 착각했다고 생각한다. 코드 샘플은 정말 감사드립니다.
이 코드의 다른 부분이다 :
_AverageDuration = new PerformanceCounter();
_AverageDuration.CategoryName = CategoryName;
_AverageDuration.CounterName = "average time per operation";
_AverageDuration.MachineName = ".";
_AverageDuration.ReadOnly = false;
_AverageDurationBase = new PerformanceCounter();
_AverageDurationBase.CategoryName = CategoryName;
_AverageDurationBase.CounterName = "average time per operation base";
_AverageDurationBase.MachineName = ".";
_AverageDurationBase.ReadOnly = false;
...
CounterCreationDataCollection counters = new CounterCreationDataCollection();
...
CounterCreationData avgDuration = new CounterCreationData();
avgDuration.CounterName = "average time per operation";
avgDuration.CounterHelp = "Average duration per operation execution";
avgDuration.CounterType = PerformanceCounterType.AverageTimer32;
counters.Add(avgDuration);
CounterCreationData avgDurationBase = new CounterCreationData();
avgDurationBase.CounterName = "average time per operation base";
avgDurationBase.CounterHelp = "Average duration per operation execution base";
avgDurationBase.CounterType = PerformanceCounterType.AverageBase;
counters.Add(avgDurationBase);
...
PerformanceCounterCategory.Create(CategoryName, "Category for Receiver", PerformanceCounterCategoryType.Unknown, counters);
...
AverageDuration.IncrementBy(performanceCounterwatch.ElapsedTicks);
AverageDurationBase.Increment();
BTW, [성능 카운터 코드를 생성하는 데 XSLT 사용] (http://rusanu.com/2009/04/11/using-xslt-to-generate-performance-counters-code/)과 같은 것을 고려해보십시오. 모든 코드를 반복하지 마십시오 –