2009-09-03 4 views
9

사용 도구 등 :이 도구를 사용하기 시작하고 최적의 조합을 찾기 위해 노력하고oprofile에서 가장 유용한 출력을 얻는 가장 좋은 방법은 무엇입니까?

opannotate

  • 은 opcontrol
  • opreport, 예 을 가장 나가 프로파일 링. KCachegrind에서

    +1

    "최고"의 의미는 항상 "좋은"의 의미에 따라 달라지며, 이는 항상 명확한 것은 아닙니다. 당신이 찾고있는 좋은 것들을 설명해 주시겠습니까? – hlovdal

    답변

    5

    감사합니다 - 그것은 프로파일 데이터 시각화 도구입니다.

    KCachegrindCallgrind profiler 도구로 생성 된 데이터 파일을 시각화합니다. 그러나 conversion scripts으로 KCachegrindOProfile과 같은 다른 프로파일 러의 출력을 시각화 할 수 있습니다.

    패키지 관리자 (yum, apt-get 등)를 사용하여 KCachegrind를 설치하면 이라는 도구가 생성되어 Oprofile의 출력이 KCachegrind의 형식으로 변환됩니다.

    6

    gprof2dot은 프로필 데이터를위한 가장 놀라운 시각화 도구입니다. 실제 문제의 코드를 드릴 다운 할 때

    opcontrol --shutdown 
    opcontrol --callgraph=7 
    opcontrol --image=<abs/path/to/your/execuable> 
    opcontrol --start 
    
    ... time passes ... 
    
    opcontrol --dump 
    opreport -c > profile_info.txt 
    gprof2dot.py -f oprofile --strip profile_info.txt | dot -Tsvg > profile_graph.svg 
    inkscape profile_graph.svg 
    

    gprof2dot--skew 옵션은 정말 좋은 것입니다.

    수동으로 이벤트 카운터를 낮은 숫자로 설정 한 경우 콜 그래프를 설정할 수 없습니다. 예를 들어 스크린 샷 : 최소 카운터가 --list-events


    편집에 나와있는 것보다 15 배 더 크다 --callgraph 옵션을 사용하는 경우 기본 수 gprof2dot.py example output

    해상도는 기밀 데이터를 공개하지 않도록 감소 , 그러나 당신은 아이디어를 얻는다.

    +0

    그것이 KCachegrind보다 낫다고 생각합니까? 스크린 샷을 만드시겠습니까? –

    +2

    @NathanKidd : 여기에 gprof2dot에 대한보다 완전한 답변이 있습니다. http://stackoverflow.com/a/4453999/28817 –

    +0

    스크린 샷을 업로드했습니다. 도구에 대한 많은 감사드립니다! – ulidtko

    관련 문제