19 คะแนน โดย xguru 2025-12-29 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • แพลตฟอร์มโอเพนซอร์สที่ Google เป็นผู้นำในการออกแบบและพัฒนา โดยมีเป้าหมายเป็น สแตกการทำ system tracing ยุคถัดไป
  • วิเคราะห์สาเหตุของปัญหาด้านประสิทธิภาพและการทำงาน ด้วยการ สังเกตลำดับการทำงานของระบบบนพื้นฐานของ tracing ในระบบที่ซับซ้อน
  • มี ความเสถียรและประสิทธิภาพระดับ production และถูกนำไปใช้เป็นระบบ tracing พื้นฐานของ ระบบปฏิบัติการ Android และ เบราว์เซอร์ Chromium
  • รวบรวมอีเวนต์จากหลายโปรเซสและเธรดให้เป็น trace แบบรวมศูนย์เดียว ผ่าน tracing daemon ประสิทธิภาพสูง
  • มี SDK แบบ C++17 ที่มี overhead ต่ำ สำหรับทำ instrumentation การเปลี่ยนแปลงด้านเวลาและสถานะของแอปพลิเคชันใน user space ได้อย่างแม่นยำ
  • เก็บข้อมูล context ของทั้งระบบผ่าน โพรบระดับ OS เช่น scheduling, ความถี่ CPU, หน่วยความจำ, call stack ของ Android และ Linux
  • มี UI แบบเบราว์เซอร์ สำหรับแสดงผล trace ขนาดใหญ่ในรูปแบบ timeline และสำรวจแบบอินเทอร์แอ็กทีฟ
    • ใช้งานได้บนเบราว์เซอร์หลักโดยไม่ต้องติดตั้งเพิ่มเติม และรองรับการเปิดดู trace format ภายนอกได้หลากหลาย
  • มี เอนจินวิเคราะห์แบบ SQL ในตัว ทำให้สามารถ query trace ได้เหมือนข้อมูล และดึง metric แบบกำหนดเองออกมาได้
  • เอกสารทางการมีให้ที่ perfetto.dev พร้อมคู่มือแบบเป็นขั้นตอนตั้งแต่ผู้เริ่มต้นจนถึงผู้ใช้งานระดับเชี่ยวชาญ
  • เป็นโครงการแบบเปิดที่ปฏิบัติตาม แนวทางชุมชนโอเพนซอร์สของ Google

ทำไมต้องใช้ Perfetto

  • นักพัฒนาแอปและแพลตฟอร์ม Android สามารถวิเคราะห์สาเหตุรากของปัญหาด้านประสิทธิภาพ เช่น แอปเริ่มช้า, frame drop, ANR ได้อย่างเป็นระบบ
  • นักพัฒนา C/C++ สามารถใช้ Tracing SDK เพื่อทำ instrumentation เส้นทางการทำงานของแอปพลิเคชัน และระบุจุดคอขวดได้อย่างแม่นยำ
  • นักพัฒนาเคอร์เนลและระบบ Linux สามารถแสดงผลอีเวนต์เคอร์เนลที่อิงกับ ftrace เพื่อวิเคราะห์ scheduling, system call และการทำงานของ interrupt
  • นักพัฒนา Chromium ใช้ Perfetto เป็นแบ็กเอนด์ของ chrome://tracing เพื่อดีบักการทำงานภายในของเบราว์เซอร์, V8 และ Blink
  • วิศวกรประสิทธิภาพและ SRE สามารถวิเคราะห์แบบรวมศูนย์ด้วย SQL จากฟอร์แมตที่หลากหลาย เช่น Linux perf, macOS Instruments และ Chrome JSON trace

2 ความคิดเห็น

 
secret3056 2025-12-29

ในบทความ Meta, Linux scheduler ที่ออกแบบมาสำหรับ Steam Deck ของ Valve บนเซิร์ฟเวอร์ขนาดใหญ่ | GeekNews ที่โพสต์ไปเมื่อไม่นานนี้ ก็มีการแสดงข้อมูลการทำโปรไฟล์โดยใช้ perfetto เช่นกัน

 
xguru 2025-12-29

เห็นบ่อยมากในบทความอื่น ๆ แต่เหมือนใน GeekNews ยังไม่ได้แนะนำกันอย่างจริงจัง เลยเอามาลงให้ ถึงจะช้าไปหน่อยก็ตาม ;)

รวมเครื่องมือติดตามที่ฉันชอบที่สุด: eBPF, QEMU, Perfetto