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
Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.