2011-05-12 1 views
3

응용 프로그램 시작 이후 다음 메소드가 실행 된 횟수를 계산하고 싶습니다. 어떻게해야합니까?Count 함수 호출

System.Drawing.Graphics.FromHdcInternal(IntPtr hdc) 
System.Drawing.BufferedGraphicsContext.CreateBuffer(IntPtr src, Int32 offsetX, Int32 offsetY, Int32 width, Int32 height) 
+2

프로파일 러를 사용하십시오. – dandan78

답변

1

표준 방식의 가장 쉬운 방법은 단순히 프로파일 러 응용 프로그램을 사용하는 것입니다. 개인적으로 나는 jetBrains dotTrace과 좋은 경험을 가지고 있지만 더 많은 것이 있습니다.

기본적으로 프로파일 러가 앱을 시작하게하고 코드에서 모든 메소드 호출을 추적합니다. 그런 다음 해당 메소드를 실행하는 데 소요 된 시간과 호출 된 횟수를 표시합니다.

실제로 이것이 성능인지 알기를 원하는 이유를 가정 할 때 프로파일 러를 살펴 보는 것이 좋습니다. 병목 현상이 발생한 위치를 교육적으로 추측하여 코드를 최적화 할 수는 있지만 프로파일 러를 사용하면 실제로 측정 할 수 있습니다. 그리고 우리 모두 알고, 두 번 측정, 한 번 자르십시오 ;-)

2

나는 두 가지 방법을 생각할 수 있습니다. 하나는 가장 단순한 프로파일 러를 사용하는 것입니다.

다른 하나는 함수를 호출하여 함수를 계산하는 것입니다. 찾기 및 바꾸기가 나머지 작업을 수행합니다.

private int invokeCount = 0; 

public static Graphics FromHdcInternalWrapped(IntPtr hdc) 
{ 
    invokeCount++; 
    return Graphics.FromHdcInternal(hdc); 
} 

개인적으로 저는 프로파일 러를 계속 사용합니다.