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