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

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

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

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

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

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

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

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

<code>/data/user/0/<var>\<app\></var>/files/profiling/profile_<var>\<tag\></var>_<var>\<datetime\></var>.perfetto-trace</code>

สถานที่:

  • <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