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를 통해 프로파일 정보를 알아보는 절차는 다음과 같다.

  1. gcc -pg -g -o main main.c: 명령으로 컴파일을 수행하고 main 명령을 몇 차례 수행함으로써 프로그램을 실행한다.
  2. gprof -b ./main > main.profile: 이 명령으로 main.profile 파일에 프로파일 정보를 저장한다. -b 옵션은 각 필드에 대한 자세한 설명을 제거하는 옵션이다.

'빌드&테스트도구 > 기타' 카테고리의 다른 글

readelf - ELF파일 정보 보기  (0) 2020.09.23
nm - 심볼 테이블 확인  (0) 2020.09.22
Mangling - 심볼명 확인  (0) 2020.09.20

+ Recent posts