เปรียบเทียบแอป (ยอดดู)

แนวคิดและการติดตั้งใช้งาน Jetpack Compose

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

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

Macrobenchmark

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

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

Microbenchmark

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

กรณีที่เหมาะกับการวัดประสิทธิภาพมีดังนี้

  • เมื่อแอปต้องประมวลผลโครงสร้างข้อมูลที่ซับซ้อน
  • เมื่อแอปมีอัลกอริทึมที่ต้องใช้การคำนวณจำนวนมากซึ่งแอปจะเรียกใช้หลายครั้งระหว่างการทำงาน

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

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

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

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

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