본문 바로가기

프로젝트2 : 개발 관련 유틸리티

performance profiler

특정 함수, 또는 로직의 수행 시간을 측정할 프로파일러가 필요해졌다.

 

visual studio 자체적으로도 성능 프로파일러가 존재한다. 하지만 너무 무겁기도 하고(정확히 얼마나 느려지는지는 측정해보지 않았다. 그냥 딱 봐도 느려진다.) 무엇보다 디버그 단계에서 하나하나 집어보는 게 아닌 "몇 시간, 며칠 단위로 켜 두고 누적된 값"을 얻기에는 무리가 있었다. 그래서 직접 만들기로 했다.

 

성능 측정의 두가지 기준인 메모리 사용량과, 소요시간을 측정하려 한다.

  • 시작 지점과, 종료 지점을 지정하여 그 구간을 대상으로 측정
  • 특정 블록 (함수, 중괄호 블록 등)을 대상으로 측정
  • 이때, 프로파일링 모드를 쉽게 변경 가능할 것
  • 이상의 내용을 소요시간, 메모리 변화에 대하여 측정하여 파일 출력

등의 요구사항이 존재할 수 있을 것 같다. 우선은 당장 유용하게 쓸 수 있을 것 같은 속도 측정 부분부터 구현하였다.

 

프로파일링 시작, 종료, 파일 출력을 구현한 뒤. 클래스 인스턴스를 이용해 스코프 프로파일링을 구현하였다. (인스턴스가 선언된 구역을 벗어나면 컴파일러에 의해 소멸자가 호출되도록 하는 부분을 이용했다.) 프로파일링 모드 변경은 USE_PROFILE 키워드를 define 한 경우와, 안 한 경우를 나누어 처리하였다.

 

 

GitHub - YoungWoo93/PerformanceProfiler

Contribute to YoungWoo93/PerformanceProfiler development by creating an account on GitHub.

github.com

 

'프로젝트2 : 개발 관련 유틸리티' 카테고리의 다른 글

CSV file parser  (0) 2022.06.30