2016-07-28 3 views
2

카운터 유형이 PerformanceCounterType.RateOfCountsPerSecond32 인 성능 카운터를 사용하여 초당 발생하는 작업 수를 모니터링하려고합니다. 아주 사용하기 쉽지만 문제는 출력이 매우 시끄럽다는 것입니다.RateOfCountsPerSecond32는 부드러운 곡선이 아닌 들쭉날쭉 한 곡선을 만듭니다.

enter image description here

그래프 선은 평균 비율을 추적하지만 제 당 실제 개수를 추적하기 위해 표시하지 않는다. 이 선은 현재 평균 속도 곡선을 따르는 것이 아니라 최소 속도에서 최대 값으로 흔들리고 훨씬 더 매끄 럽습니다.

그 결과 그래프는 지그재그로 톱니 모양으로되어있어 많은 카운터를 한 번에 추적하는 데 방해가되는 쓸데없는 시각적 노이즈가 발생합니다. 위의 예제에서 jags는 그렇게 나쁘지는 않지만 0에서 1000까지 0으로 다시 계산되는 경우 전체 그래프는 그 위에 그린 낙서처럼 보입니다. 첫 번째 예

enter image description here
(아티스트의 노출)

는 I이 한 넷의 카운터는 시간 Increment에 제

var rand = new Random(); 
var counters = new MuhCounterExample(); 
ThreadPool.QueueUserWorkItem(x => 
{ 
    while (true) 
    { 
     Thread.Sleep(rand.Next(250, 750)); 
     counters.Increment(); 
    } 
}); 
Console.WriteLine("Running"); 
Console.ReadLine(); 

를 난수 발생기를 사용 코드 MuhCounterExample은 예제의 카운터를 생성하고 소멸시키는 클래스이며 Increment()은 간단히 PerformanceCounter.Increment()을 호출합니다.

은 내가 원하는 것은 현재 값보다는 평균 값을 사용하여 해당 속도 곡선을 부드럽게하는 방법입니다. 나는 다른 카운터 유형을 살펴 보았지만 그 중 아무 것도 나를 위해 일하지 않는 것으로 보입니다. NumberOfItems32와 같은 간단한 카운터를 사용하여 실행 시간을 추적하여 초당 속도를 수동으로 생성하는 것이 유일한 방법이라고 생각합니다.

내 유일한 옵션입니까? 내가 찾고있는 것을 제공하는 다른 카운터 또는 카운터 설정이 누락 되었습니까? 더 적은 양의 카페인으로 초당 매끄럽고 좋은 속도를 낼 수 있지만 여전히 Folgers의 대담한 맛을 지니고 있습니까 ©?

+2

평균을하는 데 문제는 무엇보다 평균입니까? 마지막 두 입력? 지난 10? 지난 백? 당신이 perfview에서 그것을보고있을 때 그것은 화면에 보이는 모든 포인트의 평균을 제공합니다. –

+0

@ScottChamberlain hmmm, 좋은 지적입니다. X보다 평균을 뛰어 다니는 속도가 내가 찾고있는 것입니다. 그렇습니다. – Will

+0

미래의 방문객을 위해, 나는 결국 연결된 속이는 대상에 기초한 평균 이동 평균값을 보였다. 평균 이력의 기준은 카운터의 특성에 따라 다릅니다. 내가 급진적 인 변화에 단기간에 관심이 있다면, 나는 역사의 길이가 100 미만이된다. 나는 단지 추세가 아니라 평균을 염려한다면, 1000 년의 더 긴 역사가 어떤 불안감을 완화시킨다. 나쁜 점은 성능 카운터 인터페이스를 통해 구성 할 수 없기 때문에 카운터를 추가하거나 응용 프로그램을 통해 구성 할 수 있어야한다는 것입니다. – Will

답변

1

평균값을 추적하십시오. 가능한 한 일정한 간격으로 그래프를 작성하여보다 일관된 그래프를 얻으십시오.

관련 문제