เรียกข้อมูลการทำโปรไฟล์และวิเคราะห์

หน้านี้อธิบายวิธีดึงข้อมูลการติดตามและแสดงภาพใน UI ของ Perfetto

ดึงข้อมูลการติดตาม

หลังจากบันทึกโปรไฟล์แล้ว ระบบจะบันทึกร่องรอยไว้ในอุปกรณ์ คุณต้องดึงข้อมูลการติดตามเหล่านี้ก่อนจึงจะวิเคราะห์ได้

ProfilingResult.getResultFilePath() เป็นผู้ระบุตำแหน่งที่ทำการติดตาม หากต้องการดูวิธีรับตำแหน่งการติดตาม โปรดดูวิธีบันทึกโปรไฟล์ เมื่อทราบตำแหน่งของร่องรอยแล้ว คุณจะอัปโหลดร่องรอยไปยังเซิร์ฟเวอร์ได้

การทดสอบในเครื่อง: ดึงข้อมูลการติดตามโดยใช้ ADB

การใช้ adb เพื่อรับการติดตามจะเป็นประโยชน์ในการตรวจสอบประสิทธิภาพและแก้ไขข้อบกพร่องในเครื่อง

ระบบจะบันทึกร่องรอยที่แก้ไขแล้วไว้ในไฟล์ของอุปกรณ์ เส้นทางทั่วไปสำหรับโปรไฟล์ที่บันทึกไว้มีดังนี้

/data/user/0/<app>/files/profiling/profile<tag><datetime>.perfetto-trace

สถานที่:

  • <app> คือชื่อแอป
  • <datetime> คือวันที่และเวลาที่บันทึกการติดตาม
  • <tag> คือแท็กที่ได้จากผู้ใช้ซึ่งกำหนดค่าโดยใช้ setTag

หากเปิดใช้และบันทึกการติดตามที่ไม่มีการปกปิดข้อมูลบางส่วน ให้ใช้adbคำสั่งต่อไปนี้เพื่อ ดึงข้อมูลจากการติดตามจากอุปกรณ์

adb pull /data/misc/perfetto-traces/profiling/<trace-name>.perfetto-trace-unredacted

แสดงภาพการติดตาม

หลังจากดึงข้อมูลการติดตามไปยังคอมพิวเตอร์แล้ว คุณจะดูข้อมูลดังกล่าวใน UI ของ Perfetto ได้

ตัวอย่างการติดตามที่ปกปิด
รูปที่ 1: ตัวอย่างการติดตามที่ปิดบังข้อมูลบางส่วน

ในร่องรอยที่แก้ไขแล้ว ส่วน OtherProcesses จะรวมกิจกรรม CPU ทั้งหมดจาก กระบวนการอื่นๆ การรวมกระบวนการจะช่วยให้สิ่งที่กระบวนการอื่นๆ ทำเป็นแบบส่วนตัว

อย่างไรก็ตาม การเห็นกิจกรรม CPU ที่รวมกันนี้ยังช่วยให้คุณตรวจสอบได้ว่าระบบ ทำงานหนักเกินไปในระหว่างการบันทึกหรือไม่ การตรวจสอบกิจกรรมของระบบจะช่วยให้คุณ ทราบว่าแอปทำงานช้าเนื่องจากปัญหาภายในหรือเนื่องจาก ระบบทำงานช้าโดยทั่วไป

รูปภาพต่อไปนี้ไฮไลต์และอธิบายส่วนหลักๆ ที่คุณจะเห็น ในร่องรอยโดยย่อ

ส่วนต่างๆ ของร่องรอยที่ถูกปกปิด
รูปที่ 2: ส่วนของร่องรอยที่ผ่านการปกปิดข้อมูล
  1. รายการ CPU: แสดงโปรเซสเซอร์ทั้งหมดที่มีในอุปกรณ์
  2. งานของ CPU: แสดงเธรดที่ CPU แต่ละตัวดำเนินการ
  3. มุมมองกระบวนการอื่นๆ: แสดงทรัพยากร CPU ที่กระบวนการอื่นๆ ใช้
  4. มุมมองกระบวนการ: แสดงกระบวนการของแอป
  5. มุมมองเธรด: แสดงเธรดที่ทำงานภายในกระบวนการและสถานะเธรด (Runnable (R), Running (R), Sleeping (S), Uninterruptible Sleep (D)) ซึ่งแมปกับสถานะกระบวนการของ Linux โดยตรง
  6. ส่วนของร่องรอย: ส่วนนี้แสดงคำอธิบายประกอบร่องรอยที่นักพัฒนาแอป หรือเฟรมเวิร์กเพิ่ม คำอธิบายประกอบเหล่านี้ครอบคลุมการคำนวณ ระหว่าง Trace.beginSection กับ Trace.endSection

ดูข้อมูลเพิ่มเติมเกี่ยวกับ UI ของ Perfetto และการแสดงภาพร่องรอยได้ที่เอกสาร Perfetto