위키득계정 ↗
기술

Callgrind

Callgrind기술
소속 도구
Valgrind
분석 종류
호출 그래프 기반 프로파일링
기본 기록
명령 실행 수와 호출 관계 및 횟수
추가 분석
캐시와 분기 예측 시뮬레이션
Callgrind는 프로그램 실행에서 함수의 호출 관계와 비용을 기록하는 Valgrind 도구다. 호출 그래프를 통해 비용이 어느 함수와 호출 경로에서 생기는지 분석하고 선택적으로 캐시와 분기 예측도 모의한다.

함수 사이의 실행 이력

프로그램을 실행하며 어떤 함수가 다른 함수를 호출했는지 기록한다. 실행한 명령 수와 소스 줄의 관계, 호출자와 피호출자 및 호출 횟수가 기본 정보에 포함된다.

자체 비용과 포함 비용

함수 안에서 직접 발생한 비용만 볼 수도 있고 호출한 함수의 비용을 포함해 볼 수도 있다. Callgrind는 호출 경계를 따라 비용을 전달해 전체 경로의 부담을 파악하도록 한다.

호출 경로의 해석

같은 함수가 여러 곳에서 호출될 때 각 경로와 횟수는 최적화의 단서가 된다. 함수 자체의 연산을 줄이는 것뿐 아니라 불필요한 호출을 줄일 기회도 살필 수 있다.

프로파일의 탐색

수집한 결과는 주석 도구로 함수와 소스를 함께 보거나 KCachegrind에서 그래프로 탐색할 수 있다. 선택적인 캐시·분기 예측 모의는 기본 호출 정보와 다른 실행 특성을 추가로 제공한다.

관련 문서

Memcheck / 알고리즘 / 프로그래밍 / 컴파일러 / 디버깅 / 소프트웨어 테스트