dmtracedump

dmtracedump는 트레이스 로그 파일에서 그래픽 호출 스택 다이어그램을 생성하는 도구입니다. 이 도구에서는 Graphviz Dot 유틸리티를 사용하여 그래픽 출력을 작성하므로 dmtracedump를 실행하기 전에 Graphviz를 설치해야 합니다. 트레이스 로그를 생성하고 연결된 기기에서 로컬 시스템으로 아직 저장하지 않은 경우 앱을 계측하여 트레이스 로그 생성으로 이동하세요.

dmtracedump 도구에서는 호출 스택 데이터를 트리 다이어그램으로 생성합니다. 여기서 각 노드는 메서드 호출을 나타냅니다. 트리 다이어그램에서는 화살표를 사용하여 상위 노드에서 하위 노드로의 호출 흐름을 표시합니다. 아래 다이어그램은 dmtracedump의 샘플 출력입니다.

dmtracedump 도구는 Android SDK 도구 패키지에 제공되며 android-sdk/platform-tools/에 위치합니다.

구문

dmtracedump의 사용법은 다음과 같습니다.

dmtracedump [-ho] [-s sortable] [-d trace-base-name] [-g outfile] trace-base-name

그런 다음 도구에서는 트레이스 로그 데이터를 trace-base-name.datatrace-base-name.key에서 로드합니다.

전역 옵션

전역 옵션 설명
-h HTML 출력을 사용 설정합니다.
-o 프로파일링 대신 트레이스 파일을 덤프합니다.

명령어 및 명령어 옵션

명령어 및 옵션 설명
-d trace-base-name 이 트레이스 이름으로 차이를 확인합니다.
-g outfile outfile로 출력을 생성합니다.
-s sortable 정렬 가능한 자바스크립트 파일 위치의 URL 기본
-t percent 그래프에 하위 노드를 포함하기 위한 최소 임계값(하위 노드의 포괄 시간을 상위 노드 포괄 시간의 비율로). 이 옵션이 사용되지 않는 경우 기본 임계값은 20%입니다.

출력

그림 1. dmtracedump의 스크린샷

그래프의 노드별로 dmtracedump에서는 다음 정보를 표시합니다.

ref callname (inc-ms, exc-ms,numcalls)
  • ref — 트레이스 로그에 사용된 호출 참조 번호
  • inc-ms — 포괄적 경과 시간(메서드에 소요된 시간(밀리초), 모든 하위 메서드 포함)
  • exc-ms — 배타적 경과 시간(메서드에 소요된 시간(밀리초), 모든 하위 메서드 포함하지 않음)
  • numcalls — 호출 수