2012-04-09 3 views
15

리눅스에서 이클립스 CDT를 사용하고 있습니다. 아무도 그 환경에서 좋은 프로파일 러를 추천 할 수 있습니까?리눅스 이클립스 CDT 프로파일 러

나는 사람도 등

감사합니다, 예를 들어, 성능 병목 무엇을 보는하시기 바랍니다 멀티 스레드 응용 프로그램에 대한 프로파일 링을 실행하는 방법에 대한 몇 가지 조언을 제공 할 수 있습니다, 또한 C++ 및 멀티 스레드 프로그래밍에 새로운 오전 .

답변

12

나는 그것이 최선의 선택인지는 모르겠지만 분명히 분명합니다. gprof. 컴파일 스위치를 올바르게 설정하기 만하면됩니다 (프로젝트 속성 -> c/C++ 빌드 -> 설정 -> 디버깅에서 해당 프로젝트에 대해 gprof (-pg)를 활성화하십시오). 이 옵션을 사용하여 프로그램을 컴파일하면 정상적으로 종료 할 때까지 실행해야합니다. 그러면 프로필 파일 (gmon.out)이 생성됩니다. gmon.out (도움말 -> 설치 -> Linux 도구 -> GProf 통합으로 이동)의 내용을 시각화하는 Eclipse에서 설치할 수있는 추가 플러그인이 있습니다. 해당 플러그인이 설치되면 다른 파일처럼 gmon.out 파일을 열면됩니다.

+3

http://wiki.eclipse.org/Linux_Tools_Project/GProf/User_Guide –

+1

한 가지 봐입니다 당신은 CTRL-를 사용하면 응용 프로그램을 닫을 경우 C (보통 그가 쓰는 서버를 닫으면) gmon.out 파일은 쓰여지지 않을 것이다. – kroiz

+0

여기에 http://stackoverflow.com/questions/1030829/gprof-reports-no-time-accumulated 관련 질문이 있습니다. 누군가는 stdC++와 같은 의존 라이브러리 중 하나가 -pg없이 빌드되면 타이밍 정보를 수집 할 수 없다고 지적했습니다. 사실입니까? – Sergei

3

dbrank0에서 언급했듯이 해당 프로젝트에 대해 컴파일 옵션 (-pg)을 설정해야합니다. 프로젝트 등록 정보로 이동 -> c/C++ 빌드 -> 설정 -> C++ 컴파일러 -> 디버깅 및 검사 gfof 정보 생성. 프로그램 (test_prof.c)을 컴파일하면 exe 파일이 생깁니다 (이 경우 test_prof).

$ ls 
test_gprof test_gprof.c 

그리고 실행하면 동일한 디렉토리에 생성 된 gmon.out 파일이 생성됩니다.

$ ls 
gmon.out test_gprof test_gprof.c 

gprof를 도구는 실행 파일 이름과 인수로 위의 생성 '의 gmon.out'로 실행됩니다. 그러면 원하는 프로파일 링 정보가 모두 들어있는 분석 파일이 생성됩니다.

$ gprof test_gprof gmon.out > analysis.txt 

'analysis.txt'라는 이름의 파일이 모든 profilig 정보를 포함하고 쉽게 읽을 수있는 생성됩니다. 자세한 내용은 은 gprof은 (아마도 다른 도구뿐만 아니라)에 대한주의 http://www.thegeekstuff.com/2012/08/gprof-tutorial/

+0

안녕하세요, 여기 http://stackoverflow.com/questions/1030829/gprof-reports-no-time-accumulated 관련 질문입니다. 누군가는 stdC++와 같은 의존 라이브러리 중 하나가 -pg없이 빌드되면 타이밍 정보를 수집 할 수 없다고 지적했습니다. 이걸 확인하거나 반박 해 주시겠습니까? – Sergei