-pg 옵션을 사용하여 프로그램을 실행하고 있습니다. 출력 gmon.out을 열면 누적 목록 만 표시되고 그래프는 호출되지 않습니다. 어떻게 수정해야합니까?gprof가 호출 그래프를 표시하지 않습니다.
여기에 이전에 물어 본 내용은 다음과 같습니다. gprof - File is missing call-graph data 아무도 실제로 질문에 답변하지 않았지만 gprof에 대한 대안을 제안했습니다.
-pg 옵션을 사용하여 프로그램을 실행하고 있습니다. 출력 gmon.out을 열면 누적 목록 만 표시되고 그래프는 호출되지 않습니다. 어떻게 수정해야합니까?gprof가 호출 그래프를 표시하지 않습니다.
여기에 이전에 물어 본 내용은 다음과 같습니다. gprof - File is missing call-graph data 아무도 실제로 질문에 답변하지 않았지만 gprof에 대한 대안을 제안했습니다.
나도 대답을 찾고 실망스러운 경험을했습니다.
구체적으로는 다음과 같습니다. 다음은 저에게 도움이되었습니다 (최신 우분투 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")
물론 하나 또는 두 개의 최적화 옵션이 모든 문제를 일으키는 것일 수 있습니다.