[C#] Simple Performance Logger

PerformanceLogger는 어플리케이션의 각 구간별 실행시간을 측정하기 위한 객체다. 단순히 측정하고자 하는 구간의 시작지점과 종료지점을 지정해주는 것만으로 사용할 수 있다. 전문적인 프로필러를 사용하기 어려운 상황이거나, 간단히 병목지점을 파악하고자 할 때 유용하다.

PerformanceLogger는 System.Diagnostics.Trace와 같이 Singleton 패턴으로 구현되어서 사용하기 쉽다. 또한 다중쓰레드 환경에서도 잘 작동한다.

소스코드 다운로드: kaistizen.Diagnostics.zip

소스에는 예제가 함께 첨부되어 있으니 어떻게 작동하는지 쉽게 알 수 있다. 다음은 예제 소스코드의 일부와 그 결과 값이다.

PerformanceLogger.Instance.Mark("First Sleep",StartEndFlag.Start);
Thread.Sleep(5);
PerformanceLogger.Instance.Mark("First Sleep",StartEndFlag.End);
[Single Thread]
[Second Sleep] 00:00:00.1250000
[Third Sleep] 00:00:00.1875000
[First Sleep] 00:00:00.0156250

[Multi Thread]
[First Thread] 00:00:00.0468750
[Second Thread] 00:00:00.0937500

Press any key to continue

최 재훈

블로그, 페이스북, 트위터 고성능 서버 엔진, 데이터베이스, 지속적인 통합 등 다양한 주제에 관심이 많다.
Close Menu