แนวคิดและการใช้งาน Jetpack Compose
การเปรียบเทียบเป็นวิธีตรวจสอบและติดตามประสิทธิภาพของแอป คุณสามารถทำการเปรียบเทียบเป็นประจำเพื่อวิเคราะห์และแก้ไขปัญหาด้านประสิทธิภาพ และช่วยให้มั่นใจว่าคุณจะไม่ทำให้เกิดการถดถอยในการเปลี่ยนแปลงล่าสุด
Android มีไลบรารีและแนวทางการเปรียบเทียบ 2 แบบสำหรับการวิเคราะห์และทดสอบสถานการณ์ประเภทต่างๆ ในแอป ได้แก่ Macrobenchmark และ Microbenchmark
Macrobenchmark
ไลบรารี Macrobenchmark จะวัดการโต้ตอบของผู้ใช้ปลายทางที่ใหญ่ขึ้น เช่น การเริ่มต้น การโต้ตอบกับ UI และภาพเคลื่อนไหว ไลบรารีนี้ช่วยให้คุณควบคุมสภาพแวดล้อมด้านประสิทธิภาพที่กำลังทดสอบได้โดยตรง ซึ่งช่วยให้คุณควบคุมการคอมไพล์ รวมถึงเริ่มและหยุดแอปเพื่อวัดการเริ่มต้นหรือการเลื่อนแอปจริงได้โดยตรง
ไลบรารี Macrobenchmark จะแทรกเหตุการณ์และตรวจสอบผลลัพธ์จากภายนอกจากแอปทดสอบที่สร้างขึ้นด้วยการทดสอบของคุณ ดังนั้นเมื่อเขียนการเปรียบเทียบ คุณจะไม่เรียกใช้โค้ดของแอปโดยตรง แต่จะไปยังส่วนต่างๆ ภายในแอปในฐานะผู้ใช้แทน
การเปรียบเทียบระดับไมโคร
ไลบรารี Microbenchmark ช่วยให้คุณเปรียบเทียบโค้ดของแอปในลูปได้โดยตรง ซึ่งออกแบบมาเพื่อวัดการทำงานของ CPU ที่ประเมินประสิทธิภาพในกรณีที่ดีที่สุด เช่น Just in Time (JIT) ที่อุ่นเครื่องแล้วและการเข้าถึงดิสก์ที่แคชไว้ ซึ่งคุณอาจเห็นได้จากลูปภายในหรือฟังก์ชันที่ใช้บ่อยบางอย่าง ไลบรารีจะวัดได้เฉพาะโค้ดที่คุณเรียกใช้โดยตรงแบบแยกต่างหากเท่านั้น
กรณีต่อไปนี้เหมาะสำหรับการเปรียบเทียบ
- เมื่อแอปของคุณต้องประมวลผลโครงสร้างข้อมูลที่ซับซ้อน
- เมื่อแอปมีอัลกอริทึมที่ต้องใช้การประมวลผลสูงซึ่งเรียกใช้หลายครั้งในระหว่างการเรียกใช้แอป
นอกจากนี้ คุณยังวัดส่วนต่างๆ ของ UI ได้ด้วย เช่น คุณสามารถวัดต้นทุนของการเชื่อมโยงรายการ RecyclerView ระยะเวลาที่ใช้ในการขยายเลย์เอาต์ หรือประสิทธิภาพของการส่งเลย์เอาต์และการวัดค่าของคลาส View
อย่างไรก็ตาม คุณไม่สามารถวัดได้ว่าเคสที่เปรียบเทียบมีส่วนช่วยในประสบการณ์ของผู้ใช้โดยรวมอย่างไร ในบางสถานการณ์ การเปรียบเทียบไม่ได้บอกว่าคุณกำลังปรับปรุงจุดคอขวด เช่น เฟรมที่ตกหรือเวลาเริ่มต้นแอปหรือไม่ ด้วยเหตุนี้ คุณจึงจำเป็นต้องระบุจุดคอขวดเหล่านั้นก่อนด้วย Android Profiler หลังจากพบโค้ดที่ต้องการตรวจสอบและเพิ่มประสิทธิภาพแล้ว คุณสามารถเรียกใช้ลูปที่เปรียบเทียบซ้ำๆ เพื่อสร้างผลลัพธ์ที่มีความผันผวนน้อยลง ซึ่งจะช่วยให้คุณมุ่งเน้นที่การปรับปรุงด้านใดด้านหนึ่งได้
ไลบรารี Microbenchmark จะรายงานเฉพาะข้อมูลเกี่ยวกับแอปของคุณ ไม่ใช่ข้อมูลเกี่ยวกับระบบโดยรวม ดังนั้นจึงเหมาะที่สุดสำหรับการวิเคราะห์ประสิทธิภาพของสถานการณ์ที่เฉพาะเจาะจงสำหรับแอป ไม่ใช่สถานการณ์ที่อาจเกี่ยวข้องกับปัญหาของระบบโดยรวม
การเปรียบเทียบไลบรารีการเปรียบเทียบ
| Macrobenchmark | การเปรียบเทียบระดับไมโคร | |
|---|---|---|
| ฟังก์ชัน | วัดจุดเข้าใช้งานหรือการโต้ตอบระดับสูง เช่น การเปิดกิจกรรมหรือการเลื่อนดูรายการ | วัดฟังก์ชันแต่ละรายการ |
| ขอบเขต | การทดสอบนอกกระบวนการของแอปแบบเต็ม | การทดสอบการทำงานของ CPU ที่อยู่ระหว่างดำเนินการ |
| ความเร็ว | ความเร็วในการทำซ้ำปานกลาง โดยอาจมีความยาวเกิน 1 นาทีได้ | ความเร็วในการทำซ้ำที่รวดเร็ว โดยปกติจะใช้เวลาไม่เกิน 10 วินาที |
| การติดตาม | ผลลัพธ์จะมาพร้อมกับการติดตามของระบบ | ผลลัพธ์จะมาพร้อมกับการติดตามของระบบขั้นต่ำและการติดตามเมธอดโดยค่าเริ่มต้น |
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- สร้างโปรไฟล์พื้นฐาน {:#creating-profile-rules}
- ไลบรารี JankStats
- ภาพรวมของการวัดประสิทธิภาพของแอป