ใช้โปรไฟล์พื้นฐาน

โปรไฟล์พื้นฐานช่วยปรับปรุงความเร็วในการเรียกใช้โค้ดประมาณ 30% ตั้งแต่การเปิดตัวครั้งแรก ด้วยการหลีกเลี่ยงขั้นตอนการตีความและการคอมไพล์แบบ Just-In-Time (JIT) สำหรับ เส้นทางโค้ดที่รวมไว้ การจัดส่งโปรไฟล์พื้นฐานในแอปหรือไลบรารีจะช่วยให้ Android Runtime (ART) เพิ่มประสิทธิภาพเส้นทางโค้ดที่รวมไว้ผ่านการคอมไพล์แบบ Ahead-Of-Time (AOT) ซึ่งจะช่วยเพิ่มประสิทธิภาพสำหรับการติดตั้งแอปใหม่ทุกครั้งและการอัปเดตแอปทุกครั้ง การเพิ่มประสิทธิภาพที่แนะนำโดยโปรไฟล์ (PGO) นี้ช่วยให้แอปเพิ่มประสิทธิภาพการเริ่มต้น ลดการกระตุกในการโต้ตอบ และปรับปรุงประสิทธิภาพโดยรวมของรันไทม์ตั้งแต่การเปิดตัวครั้งแรกสำหรับผู้ใช้ปลายทาง

ข้อควรพิจารณาเกี่ยวกับประสิทธิภาพของ Compose

Compose ได้รับการเผยแพร่เป็นไลบรารีแทนที่จะเป็นส่วนหนึ่งของแพลตฟอร์ม Android แนวทางนี้ช่วยให้ทีม Compose อัปเดต Compose ได้บ่อยครั้งและรองรับ Android เวอร์ชันต่างๆ ได้มากมาย อย่างไรก็ตาม การเผยแพร่ Compose เป็นไลบรารีก็มีค่าใช้จ่าย

โค้ดแพลตฟอร์ม Android ได้รับการคอมไพล์และติดตั้งในอุปกรณ์เรียบร้อยแล้ว แต่ไลบรารีต้องโหลดเมื่อเปิดแอปและตีความ JIT เมื่อจำเป็น ซึ่งอาจทำให้แอปทำงานช้าลงเมื่อเริ่มต้นและเมื่อใช้ฟีเจอร์ไลบรารีเป็นครั้งแรก

ประโยชน์ของโปรไฟล์พื้นฐาน

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

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

Macrobenchmark

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

ดูตัวอย่างวิธีเขียนการทดสอบ Macrobenchmark สำหรับ UI ของ Compose ได้ที่ตัวอย่าง Macrobenchmark Compose

แหล่งข้อมูลเพิ่มเติม