시스템프로그래밍: gprof (gnu 프로파일러) 소개 및 사용법
참고자료:
http://korea.gnu.org/manual/release/gprof/gprof_1.html#SEC1 GNU 코리아 메뉴얼
프로파일링을 통해 얻을 수 있는 점
http://korea.gnu.org/manual/release/gprof/gprof_1.html#SEC1 GNU 코리아 메뉴얼
프로파일링을 통해 얻을 수 있는 점
- 프로그램에서 어느 부분을 수행하는데 가장 많은 시간을 소비하고 있는지 확인 가능
- 함수들의 호출 관계 확인 가능
- 지나칠지도 모를 버그를 발견하는데 도움을 주기도 함
프로파일링 과정
- 프로파일링이 가능하도록 컴파일
- 프로파일 데이터를 생성하도록 프로그램 실행
- 프로파일 데이터를 분석하기 위해 gprof 실행
1. 컴파일
컴파일시 '-pg' 옵션을 추가해야 함
2. 프로그램 실행
프로파일링 옵션으로 컴파일된 실행 프로그램은 "gmon.out" 파일을 만듦
이 파일에 프로파일링 정보를 저장
gmon.out 파일에는 "flat profile"과 call graph가 저장되어 있음
- flat profile = 각 함수에서 소비된 시간과 함수의 호출 횟수 저장
- call graph = 함수들 간의 호출 관계와 호출 횟수가 저장
3. gprof 실행
간단하게 정리하면,
gprof [실행파일] [프로파일링 파일] > [결과를 저장할 파일] 으로 요약할 수 있음.
(gprof 다음에 option을 줄 수 있는데 조금 익숙해지면 이것저것 써볼 것)
리눅스 터미널에
gprof mdriver gmon.out > result.txt 를 친 후
vim result.txt 를 쳤을 때 결과
생각보다 간단하네???
프로그램 최적화 하는 단계에서 유용하게 사용할 수 있음!!
댓글
댓글 쓰기