dmtracedump
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
dmtracedump
เป็นเครื่องมือที่สร้าง
แผนภาพ Call-stack แบบกราฟิกจากไฟล์บันทึกการติดตาม เครื่องมือใช้ Graphviz
จุดยูทิลิตีในการสร้างเอาต์พุตกราฟิก ดังนั้นคุณจึงต้องติดตั้ง Graphviz
ก่อนเรียกใช้ dmtracedump
หากคุณยังไม่ได้สร้างบันทึกการติดตามและ
บันทึกรายการเหล่านั้นจากอุปกรณ์ที่เชื่อมต่อไปยังเครื่องของคุณเอง ให้ไปที่
สร้างบันทึกการติดตามด้วยการใช้แอป
เครื่องมือ 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.data
และ
trace-base-name.key
ตัวเลือกโดยรวม
ตัวเลือกโดยรวม |
คำอธิบาย |
-h |
เปิดเอาต์พุต HTML |
-o |
ถ่ายโอนไฟล์การติดตามแทนการทำโปรไฟล์ |
คำสั่งและตัวเลือกคำสั่ง
คำสั่งและตัวเลือก |
คำอธิบาย |
-d trace-base-name |
ความแตกต่างกับชื่อการติดตามนี้ |
-g outfile |
สร้างเอาต์พุตไปยัง outfile |
-s sortable |
URL ตามตำแหน่งของไฟล์ JavaScript ที่จัดเรียงได้ |
-t percent |
เกณฑ์ขั้นต่ำสำหรับการรวมโหนดย่อยในกราฟ (เวลารวมของโหนดย่อยในฐานะ
เปอร์เซ็นต์ของเวลารวมระดับบนสุด) หากไม่ได้ใช้ตัวเลือกนี้ ระบบจะใช้เกณฑ์เริ่มต้น
เท่ากับ 20% |
เอาต์พุต
รูปที่ 1 ภาพหน้าจอของ dmtracedump
สำหรับแต่ละโหนดในกราฟ dmtracedump
จะแสดงข้อมูลต่อไปนี้
ข้อมูล:
ref callname (inc-ms, exc-ms,numcalls)
ref
— หมายเลขอ้างอิงการโทรตามที่ใช้ในบันทึกการติดตาม
inc-ms
— เวลาที่ผ่านไปโดยรวม (หน่วยเป็นวินาทีที่ใช้ในวิธีการ
ซึ่งรวมถึงเมธอดย่อยทั้งหมด)
exc-ms
— เวลาที่ผ่านไปเฉพาะตัว (เวลาที่ใช้ในการแสดงผลในหน่วยมิลลิวินาที
ไม่รวมเมธอดย่อยใดๆ)
numcalls
— จำนวนการโทร
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-07-27 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-07-27 UTC"],[],[],null,["# dmtracedump\n\n`dmtracedump` is a tool that generates\ngraphical call-stack diagrams from trace log files. The tool uses the Graphviz\nDot utility to create the graphical output, so you need to install Graphviz\nbefore running `dmtracedump`. If you haven't yet generated trace logs and\nsaved them from your connected device to your local machine, go to\n[Generate trace logs by instrumenting your app](/studio/profile/generate-trace-logs).\n\nThe `dmtracedump` tool generates the call stack data as a tree diagram, where each\nnode represents a method call. It shows call flow (from parent node to child nodes)\nusing arrows. The diagram below shows a sample output of `dmtracedump`.\n\nThe `dmtracedump` tool is provided in the Android SDK Tools package and is\nlocated in \u003cvar translate=\"no\"\u003eandroid-sdk\u003c/var\u003e`/platform-tools/`.\n\nSyntax\n------\n\nThe usage for dmtracedump is: \n\n```\ndmtracedump [-ho] [-s sortable] [-d trace-base-name] [-g outfile] trace-base-name\n```\n\nThe tool then loads trace log data from \u003cvar translate=\"no\"\u003etrace-base-name\u003c/var\u003e`.data` and\n\u003cvar translate=\"no\"\u003etrace-base-name\u003c/var\u003e`.key`.\n\n### Global options\n\n| Global options | Description |\n|----------------|------------------------------------------|\n| `-h` | Turn on HTML output |\n| `-o` | Dump the trace file instead of profiling |\n\n### Commands and command options\n\n| Commands and options | Description |\n|------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `-d `\u003cvar translate=\"no\"\u003etrace-base-name\u003c/var\u003e | Diff with this trace name |\n| `-g `\u003cvar translate=\"no\"\u003eoutfile\u003c/var\u003e | Generate output to \u003cvar translate=\"no\"\u003eoutfile\u003c/var\u003e |\n| `-s `\u003cvar translate=\"no\"\u003esortable\u003c/var\u003e | URL base to the location of the sortable javascript file |\n| `-t `\u003cvar translate=\"no\"\u003epercent\u003c/var\u003e | Minimum threshold for including child nodes in the graph (child's inclusive time as a percentage of parent inclusive time). If this option is not used, the default threshold is 20%. |\n\nOutput\n------\n\n\n**Figure 1.** Screenshot of dmtracedump\n\n\u003cbr /\u003e\n\nFor each node in the graph, `dmtracedump` shows the following\ninformation: \n\n```\nref callname (inc-ms, exc-ms,numcalls)\n```\n\n- \u003cvar translate=\"no\"\u003eref\u003c/var\u003e --- Call reference number, as used in trace logs\n- \u003cvar translate=\"no\"\u003einc-ms\u003c/var\u003e --- Inclusive elapsed time (milliseconds spent in method, including all child methods)\n- \u003cvar translate=\"no\"\u003eexc-ms\u003c/var\u003e --- Exclusive elapsed time (milliseconds spent in method, not including any child methods)\n- \u003cvar translate=\"no\"\u003enumcalls\u003c/var\u003e --- Number of calls"]]