2014-11-03 2 views
1

C/C++로 작성된 코드에서 일부 함수 호출 속도 테스트에 관심이 있습니다. 나는 검색했고 나는 Callgrind 도구로 Valgrind 플랫폼을 사용하도록 지시 받았다.Callgrind : Callgrind 도구를 사용하여 함수 속도를 계산하는 방법

간략하게는 manual을 읽었지 만 도구의 기능을 활용하여 내 기능 런타임 속도를 평가할 수 있는지 궁금합니다.

내 목표를 달성 할 수있는 방법을 찾을 수 있는지 궁금합니다.

도움을 주시면 감사하겠습니다.

답변

2

디버그 기호로 프로그램을 컴파일하십시오 (예 : "-ggdb"플래그로 활성화 된 GDB 기호가 제대로 작동 함).

이 같은 프로그램을 실행하는 경우 :

valgrind --tool=callgrind ./program 

Callgrind 다음라는 파일 callgrind.out.1234를 생성합니다 :

./program 

그런 다음이 명령 Valgrind의 + Callgrind으로 실행 (1234는 프로세스 ID이며 실행하면 다를 수 있습니다). 이 파일을 다음과 같이 엽니 다 :

cg_annotate callgrind.out.1234 

함수 이름을 추출하는 데 grep을 사용할 수 있습니다. 왼쪽 열에는 해당 기능에 사용 된 명령어 수가 표시됩니다. 그러나 비교적 적은 양의 명령어를 사용하는 함수는 무시됩니다.

출력이 멋진 그래픽을보고 싶다면 KCachegrind를 설치하는 것이 좋습니다.