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