gprof로 프로파일 정보 확인
: 프로파일 정보는 바이너리가 수행될 때 생성되는 정보로, 어떤 함수가 몇 번 호출되었고 이 함수의 수행 시간은 얼마나 걸렸는지 등을 알려준다. 이러한 프로파일 정보를 보기 위해서는 컴파일 시 -pg
옵션을 사용해야하고, 이는 실행 바이너리 파일에 프로파일 정보를 출력하는 코드를 집어넣고 실행파일을 실행한 후에 gmon.out
이라는 파일을 생성한다. grpof는 이 gmon.out
이라는 파일을 이용해 프로파일 정보를 얻을 수 있다.
// main.c
#include <stdio.h>
void func1()
{
printf("Hello World \n");
}
void func2(int delay)
{
printf("Delay: %d", delay);
while (delay--);
}
int main()
{
for (int i = 0; i < 10; ++i) {
func1();
}
for (int i = 0; i < 100; ++i) {
func2(i);
}
return 0;
}
위와 같은 소스가 있다고 하자. gprof를 통해 프로파일 정보를 알아보는 절차는 다음과 같다.
gcc -pg -g -o main main.c
: 명령으로 컴파일을 수행하고main
명령을 몇 차례 수행함으로써 프로그램을 실행한다.gprof -b ./main > main.profile
: 이 명령으로main.profile
파일에 프로파일 정보를 저장한다.-b
옵션은 각 필드에 대한 자세한 설명을 제거하는 옵션이다.
'빌드&테스트도구 > 기타' 카테고리의 다른 글
readelf - ELF파일 정보 보기 (0) | 2020.09.23 |
---|---|
nm - 심볼 테이블 확인 (0) | 2020.09.22 |
Mangling - 심볼명 확인 (0) | 2020.09.20 |