-pg オプションを指定してプログラムを実行しています。出力 gmon.out を開くと、累積リストのみが表示され、グラフは表示されません。どうすれば修正できますか?
gprof - File is missing call-graph dataしかし、実際に質問に答えた人は誰もおらず、gprof の代替案を示しただけでした。
-pg オプションを指定してプログラムを実行しています。出力 gmon.out を開くと、累積リストのみが表示され、グラフは表示されません。どうすれば修正できますか?
gprof - File is missing call-graph dataしかし、実際に質問に答えた人は誰もおらず、gprof の代替案を示しただけでした。
私も答えを探してがっかりした経験がありました。
具体的には、次のことが役に立ちました(最新のUbuntu 2013年5月)。との両方-fno-reorder-functions
を試してください-fno-inline
。たとえば、cmake では次のように動作します。
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(${CMAKE_CXX_FLAGS} "-Ofast")
add_definitions(${CMAKE_CXX_FLAGS} "-fno-reorder-functions")
add_definitions(${CMAKE_CXX_FLAGS} "-fno-inline")
endif()
一般的に:コンパイラの最適化に関するドキュメントを参照してください。機能する最適化レベルを見つけて、リストされているすべてのオプションを次のレベルに追加します。たとえば、二分法で追加と削除を試してください。繰り返しますが、cmake では次のようになります。
add_definitions(${CMAKE_CXX_FLAGS} "-O1")
add_definitions(${CMAKE_CXX_FLAGS} "-fthread-jumps")
add_definitions(${CMAKE_CXX_FLAGS} "-falign-functions -falign-jumps")
add_definitions(${CMAKE_CXX_FLAGS} "-falign-loops -falign-labels")
# add_definitions(${CMAKE_CXX_FLAGS} "-fcaller-saves")
# add_definitions(${CMAKE_CXX_FLAGS} "-fcrossjumping")
# add_definitions(${CMAKE_CXX_FLAGS} "-fcse-follow-jumps -fcse-skip-blocks")
# add_definitions(${CMAKE_CXX_FLAGS} "-fdelete-null-pointer-checks")
1 つまたは 2 つの最適化オプションがすべての問題を引き起こしている可能性があります。