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