소프트웨어/툴 & 프로파일링

소프트웨어/툴 & 프로파일링

gprof 고급사용법 : call 그래프 결과 이미지로 변환하기 등

이전 포스팅에서 (http://kkangeva.tistory.com/67) 기본적인 사용법을 다뤘다. 아래 내용은 이전 포스팅의 내용 기본으로 작성된 것이다. [gmon.out 파일을 지정하기]기본적으로 gmon.out 파일은 실행파일과 같은 위치에 만들어진다. 하지만 실제로 프로파일링이 필요한 환경에서는 다른 디렉토리를 지정하고 싶을 수 있다. 가령 rootfs가 읽기전용이거나 실행파일의 위치가 읽기전용일 경우 재현이 잘되지 않아서 여러 번 프로파일링을 반복하고 결과를 저장하고 싶은 경우 사실 이전 포스팅에서 이미 방법을 소개했다. GMON_OUT_PREFIX 환경변수를 사용하면 된다. 아래는 기본적인 gprof 시퀀스다. $ g++ -g -pg -o test test.cpp $ ./test $ gpr..

소프트웨어/툴 & 프로파일링

예제와 함께하는 gprof를 이용한 기본적인 CPU 프로파일링

gprof를 사용하면 특정 실행파일의 함수별 호출횟수, 대략적인 CPU 사용시간을 확인할 수 있다. 즉, 함수별 호출횟수를 기반으로 성능 최적화 포인트 (혹은 성능저하 포인트)를 잡아낼 수 있는 툴이다. 참고로 CPU 사용률의 경우, 10ms 단위의 샘플링이기 때문에 아주 상세한 정보라고 보기는 힘들다. 그리고 기본으로 제공하는 text 리포트의 경우 callstack 정보를 상세하게 확인하기 어려운 단점이 존재한다. [기본적인 사용법]기본적인 프로파일링 시퀀스는 다음과 같다.컴파일 with -pg실행프로파일링 리포트 확인-pg 옵션이 활성화된 실행파일은 아래 세 가지 작업이 추가가 된다. gmon.out 파일생성 (GMON_OUT_PREFIX 환경변수로 위치 조정가능) 10ms 마다 PC (프로그래밍 ..

소프트웨어/툴 & 프로파일링

gperftools & tcmalloc 소개

[소개]구글의 성능 측정 툴이 모태가 되어서 개발된 오픈소스 툴이다.멀티스레드 환경에서 잘 동작한다고 주장하고 있으며 아래 세 가지가 메인 기능이라고 한다.malloc 성능향상 : tcmallocheap-checkerheap-profilercpu-profiler 체커나 프로파일을 위한 리포트를 생성하기 위해서 pprof 라는 내부 툴이 있다.다만 해당이 golang 버전으로 대체 되었다고 한다.얼핏 살펴보니 perf 또한 지원하는 형태로 발전한 듯 하다.나중에 시간나면 한번 살펴봐야지. - https://github.com/google/pprof [TCMALLOC]간단하게 -ltcmalloc 또는 -ltcmalloc_minimal 을 링크하는 것으로 끝이다.이렇게 하면 코드 상의 malloc 또는 new..

강에바
'소프트웨어/툴 & 프로파일링' 카테고리의 글 목록