2012-03-01 5 views
1

내 프로그램의 프로파일 링에 문제가 있습니다. 나는gprof를 메이크 파일과 함께 사용

exec: function1.o function2.o function3.o main.o 
    g++ -g -pg -z -c -o exec function1.o function2.o function3.o main.o 

하지만 ./exec으로 프로그램을 실행하면 다음 gprof exec로 데이터를 프로파일 : 다음

function1.o:  function1.cpp 
    g++ -g -pg -z -c function1.cpp 

내가 이런 식으로 모든 것을 함께 연결 :

I는 다음과 같이 별도로 각각의 기능을 컴파일 프로파일 링 데이터를 얻지 못하면 다음과 같이 말합니다 :

granularity: each sample hit covers 4 byte(s) no time accumulated 

내가 잘못하고 있니?

+1

valgrind-callgrind 및 kcachegrind를 대신 사용해 보았습니까? 비슷한 문제가있어서 gprof로 CMAKE 작업을 할 수 없으며 callgrind를 사용하여 종료되었습니다. kcachegrind 시각화가 유용합니다. –

+0

왜이 문제는'make '의 사용과 관련이 있다고 생각합니까? 'make '를 사용하지 않고 손으로 컴파일하면 문제가 보이지 않습니까? – eriktous

답변

0

프로그램이 gprof가 샘플을 수집하기에 충분하지 않을 수 있습니다.

주 루프를 여러 번 수행하여 임의로 실행 시간을 늘릴 수 있습니다.

Linux에서 실행중인 경우 더 나은 프로파일 링 도구 인 perf도 권장합니다.