เปรียบเทียบแอป

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

Android มีไลบรารีการวัดประสิทธิภาพและแนวทาง 2 แบบสำหรับการวิเคราะห์และทดสอบสถานการณ์ต่างๆ ในแอป ได้แก่ Macrobenchmark และ Microbenchmark

Macrobenchmark

ไลบรารี Macrobenchmark จะวัดการโต้ตอบของผู้ใช้ปลายทางขนาดใหญ่ เช่น การเริ่มต้น การโต้ตอบกับ UI และภาพเคลื่อนไหว ไลบรารีนี้ช่วยให้คุณควบคุมสภาพแวดล้อมด้านประสิทธิภาพที่คุณกำลังทดสอบได้โดยตรง โดยจะช่วยให้คุณควบคุมการคอมไพล์ รวมถึงเริ่มและหยุดแอปเพื่อวัดการเริ่มต้นหรือการเลื่อนของแอปจริงได้โดยตรง

ไลบรารี Macrobenchmark จะแทรกเหตุการณ์และติดตามผลลัพธ์จากภายนอกแอปทดสอบที่สร้างขึ้นด้วยการทดสอบของคุณ ดังนั้น เมื่อเขียนการวัดประสิทธิภาพ คุณจะไม่เรียกใช้โค้ดแอปโดยตรง แต่จะไปยังส่วนต่างๆ ภายในแอปในฐานะผู้ใช้

Microbenchmark

ไลบรารี Microbenchmark ช่วยให้คุณวัดประสิทธิภาพโค้ดแอปได้โดยตรงในลูป ซึ่งออกแบบมาเพื่อวัดงานของ CPU ที่ประเมินประสิทธิภาพที่ดีที่สุด เช่น การเข้าถึงดิสก์ที่แคชไว้และการเข้าถึงดิสก์แบบ Just in Time (JIT) ที่อุ่นเครื่องแล้ว ซึ่งคุณอาจเห็นได้จากลูปภายในหรือฟังก์ชันที่ใช้งานบ่อย ไลบรารีนี้จะวัดได้เฉพาะโค้ดที่คุณเรียกใช้ได้โดยตรงแบบแยกกัน

หากแอปต้องประมวลผลโครงสร้างข้อมูลที่ซับซ้อน หรือมีอัลกอริทึมเฉพาะที่ต้องใช้การคำนวณมากซึ่งเรียกใช้หลายครั้งระหว่างการทำงานของแอป กรณีเหล่านี้อาจเหมาะสำหรับการวัดประสิทธิภาพ นอกจากนี้ คุณยังวัดประสิทธิภาพบางส่วนของ UI ได้ด้วย เช่น คุณสามารถวัดต้นทุนของการเชื่อมโยงรายการ RecyclerView ระยะเวลาที่ใช้ในการ Inflate เลย์เอาต์ หรือความต้องการของเลย์เอาต์และการวัดของคลาส View จากมุมมองด้านประสิทธิภาพ

อย่างไรก็ตาม คุณจะไม่สามารถวัดได้ว่ากรณีที่วัดประสิทธิภาพมีส่วนช่วยให้ประสบการณ์ของผู้ใช้โดยรวมดีขึ้นอย่างไร ในบางสถานการณ์ การวัดประสิทธิภาพจะไม่บอกคุณว่าคุณกำลังปรับปรุงจุดคอขวด เช่น การกระตุก หรือเวลาเริ่มต้นของแอปหรือไม่ ด้วยเหตุนี้ คุณจึงต้องระบุคอขวดเหล่านั้นก่อนด้วย Android Profiler หลังจากพบโค้ดที่ต้องการตรวจสอบและเพิ่มประสิทธิภาพแล้ว ลูปที่วัดประสิทธิภาพจะทำงานซ้ำๆ ได้อย่างรวดเร็วและง่ายขึ้นเพื่อสร้างผลลัพธ์ที่มีสัญญาณรบกวนน้อยลง ซึ่งช่วยให้คุณมุ่งเน้นไปที่การปรับปรุงด้านใดด้านหนึ่งได้

ไลบรารี Microbenchmark จะรายงานข้อมูลเกี่ยวกับแอปของคุณเท่านั้น ไม่ใช่เกี่ยวกับระบบโดยรวม ดังนั้น ไลบรารีนี้จึงเหมาะที่สุดสำหรับการวิเคราะห์ประสิทธิภาพของสถานการณ์ที่เฉพาะเจาะจงกับแอป ไม่ใช่สถานการณ์ที่อาจเกี่ยวข้องกับปัญหาของระบบโดยรวม

การเปรียบเทียบไลบรารีการวัดประสิทธิภาพ

Macrobenchmark Microbenchmark
เวอร์ชัน API 23 ขึ้นไป 14 ขึ้นไป
ฟังก์ชัน วัดจุดเริ่มต้นหรือการโต้ตอบระดับสูง เช่น การเปิดใช้กิจกรรมหรือการเลื่อนรายการ วัดฟังก์ชันแต่ละรายการ
ขอบเขต การทดสอบแอปแบบเต็มรูปแบบนอกกระบวนการ การทดสอบงานของ CPU ในกระบวนการ
ความเร็ว ความเร็วในการทำซ้ำปานกลาง อาจใช้เวลามากกว่า 1 นาที ความเร็วในการทำซ้ำสูง มักใช้เวลาน้อยกว่า 10 วินาที
การติดตาม ผลลัพธ์มาพร้อมกับการติดตามการทำโปรไฟล์ การสุ่มตัวอย่างและการติดตามวิธีการที่ไม่บังคับ