1

プログラムのプロファイリングに問題があります。

次のように、各関数を個別にコンパイルします。

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

次に、次のようにすべてをリンクします。

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プロファイリングすると、プロファイリング データが取得されません。次のように表示されます。

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

私は何か間違ったことをしていますか?

4

1 に答える 1

0

gprof がサンプルを収集するのに十分な時間、プログラムが実行されていない可能性があります。

メインループを数回実行することで、実行時間を任意に増やすことができます。

Linux で実行している場合perfは、どちらが本当に優れたプロファイリング ツールであるかをお勧めします。

于 2012-03-01T17:58:37.743 に答える