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