โปรไฟล์พื้นฐานจะเพิ่มความเร็วในการดำเนินการกับโค้ดได้ 30% ด้วยการหลีกเลี่ยง อินเทอร์พรีเตอร์และ Just-In-Time (JIT) ก้าว สำหรับเส้นทางของผู้ใช้ทั่วไป โปรไฟล์พื้นฐานให้คุณเลือกเส้นทางของผู้ใช้ ต้องการเพิ่มประสิทธิภาพและช่วยปรับปรุงการเริ่มต้นแอป ลดความยุ่งยาก และอื่นๆ ส่งผลให้เมตริกธุรกิจได้รับการปรับปรุงให้ดีขึ้น เช่น การคงผู้ใช้ไว้และการให้คะแนน ดูข้อมูลเพิ่มเติมเกี่ยวกับเกณฑ์พื้นฐาน โปรไฟล์
ทีมปฏิทิน Android ใช้โปรไฟล์พื้นฐานและพบว่ามีแอปประมาณ 20% การปรับปรุงเวลาในการเริ่มต้นระบบ และเฟรมที่ช้าหรือค้างลดลงประมาณ 50% นี่คือ สิ่งที่พวกเขาได้ทำตั้งแต่ต้นจนจบ เพื่อให้ได้ผลลัพธ์ด้านประสิทธิภาพเหล่านี้ จากเหตุผล ตัดสินใจใช้โปรไฟล์พื้นฐานในการวัดผลกระทบ
โปรไฟล์ระบบคลาวด์กับโปรไฟล์พื้นฐาน
ทีมปฏิทิน Android ได้ใช้ระบบคลาวด์ โปรไฟล์ เป็นอีกวิธีการหนึ่งของการเพิ่มประสิทธิภาพที่แนะนำด้วยโปรไฟล์ (PGO) ที่อิงตามผู้ใช้จริง การโต้ตอบกับแอป โปรไฟล์ Cloud และโปรไฟล์พื้นฐานมีดังนี้ เปรียบเทียบ:
ประเภทโปรไฟล์ | ตั้งค่า | รวมเส้นทางของผู้ใช้ | ทำงานได้ดีที่สุดเมื่อฐานผู้ใช้ | ได้รับผลกระทบแล้ว | เวอร์ชัน Android ที่รองรับ |
---|---|---|---|---|---|
โปรไฟล์ระบบคลาวด์ |
เปิดใช้โดยค่าเริ่มต้น |
เลือกโดยอัตโนมัติตามข้อมูลผู้ใช้จริง |
ใหญ่ |
ภายใน 2-3 วัน |
Android 9 (API ระดับ 28) ขึ้นไป |
โปรไฟล์พื้นฐาน |
คุณกำหนดค่าเอง |
เลือกโดยคุณ |
ทุกขนาด |
ทันที |
Android 7 (API ระดับ 24) ขึ้นไป |
เหตุผลหลักข้อหนึ่งที่ทำให้ทีมปฏิทิน Android ตัดสินใจเพิ่มโปรไฟล์พื้นฐานลงใน ฐานของโค้ดคือการที่พวกเขาเปลี่ยนมาใช้รอบการเผยแพร่รายสัปดาห์ที่เร็วขึ้น แม้ว่าโปรไฟล์ระบบคลาวด์จะให้ประสิทธิภาพเพิ่มขึ้นอย่างมาก แต่ก็ใช้เวลา 1-2 วัน หลังเปิดตัวแอป เพื่อให้บรรลุผลสูงสุดเพราะอาศัย เก็บรวบรวมข้อมูลผู้ใช้ในชีวิตจริง การเสริมโปรไฟล์ระบบคลาวด์ด้วยเกณฑ์พื้นฐาน โปรไฟล์ช่วยให้ผู้ใช้มีเวลามากขึ้นเพื่อสัมผัสกับการปรับปรุงประสิทธิภาพสูงสุด ก่อนที่จะมีการเปิดตัวแอปเวอร์ชันถัดไป
นอกจากนี้ สิ่งสำคัญสำหรับทีมปฏิทิน Android คือ เลือกเส้นทางของผู้ใช้ที่สำคัญ (CUJ) ที่จะรวมไว้ใน ซึ่งคุณทำได้โดยใช้โปรไฟล์พื้นฐาน
โดยทั่วไป เราขอแนะนำให้ใช้โปรไฟล์พื้นฐานนอกเหนือจากโปรไฟล์ระบบคลาวด์ เปิดใช้โดยค่าเริ่มต้นเพื่อให้ได้ผลลัพธ์ด้านประสิทธิภาพที่ดีที่สุด
รวมเส้นทางของผู้ใช้
ทีมปฏิทินของ Android เลือกรวม CUJ 2 รายการต่อไปนี้ไว้ในโปรไฟล์พื้นฐาน
- การเปิดแอปในมุมมองกำหนดการ: เป็นมุมมองเริ่มต้นตั้งแต่แรก ดังนั้นสิ่งสำคัญคือ เพิ่มประสิทธิภาพสำหรับผู้ใช้ที่ใช้แอปเป็นครั้งแรกหรือผู้ที่ไม่ได้เปลี่ยน การตั้งค่าเริ่มต้น
- การเปิดแอปในมุมมองเดือน: มุมมองที่เลือกสำหรับผู้ใช้จำนวนมาก ซึ่งอิงตามผู้ใช้ ในการติดตามวิธีที่ผู้ใช้ใช้แอป คุณสามารถใช้เครื่องมือต่างๆ เช่น Firebase
โดยทั่วไป คุณควรเพิ่ม CUJ ที่ทำกำไรให้ธุรกิจ (หาก ที่เกี่ยวข้อง) และ CUJ ที่พบมากที่สุด ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีเลือก CUJ ที่จะเพิ่มประสิทธิภาพ โปรดดูสิ่งที่ควรทำ รวม
การใช้งาน
ทีมปฏิทิน Android จะใช้ Wrapper ภายในสำหรับ ไลบรารี Jetpack Macrobenchmark เพื่อสร้างโปรไฟล์พื้นฐานเพื่อให้ผสานรวมกับเครื่องมือภายในได้ง่าย และ ความสามารถในการปรับขนาดทั่วไป
นี่คือการกำหนดค่าการทดสอบ Macrobenchmark สำหรับการเปิดแอปตามกำหนดเวลา มุมมอง:
@Test
fun generateProfile() =
baselineProfileRule.collect(PACKAGE_NAME, includeInStartupProfile = true) {
startActivityAndWait()
// Verify pre-existing recurring events and tasks are shown.
device.waitAndFindObject(By.text("Recurring event"), 20_000)
device.waitAndFindObject(By.text("Recurring task"), 20_000)
// Open drawer and verify selected view.
device.findObject(By.desc("Show Calendar List and Settings drawer")).click()
device.waitAndFindObject(By.desc("Schedule view, Selected"), 1_000)
}
วัดผลกระทบโดยใช้รุ่นที่มีการควบคุม
เนื่องจากโปรไฟล์พื้นฐานจะทำงานคู่กับ APK ที่เราจัดส่งด้วย และผสานรวมก่อนที่แอปจะทำงาน เป็นไปไม่ได้ที่จะเรียกใช้ A/B มาตรฐาน เพื่อทดสอบทำความเข้าใจผลกระทบ แต่ทีมปฏิทิน Android ดูการวัดผลกระทบที่แม่นยำได้โดยใช้รุ่นที่มีการควบคุม โดยที่ เปิดตัวแอปเวอร์ชันใหม่แก่ผู้ใช้กลุ่มย่อย และเปรียบเทียบ ให้แก่ผู้ใช้ที่ใช้เวอร์ชันที่คล้ายกับรุ่นก่อนหน้า
เมื่อใช้โปรไฟล์พื้นฐาน พวกเขาเห็นข้อมูลต่อไปนี้ในทันที อย่างมีนัยสำคัญ การปรับปรุงในหลายๆ ด้าน สถิติเหล่านี้รวบรวมมาจากในวงกว้าง อุปกรณ์และผู้ใช้ทั้งหมด ได้แก่ ผู้ที่เริ่มต้นในกำหนดการและมุมมองเดือน น่าจะได้รับประโยชน์มากที่สุด แต่ผู้ใช้คนอื่นๆ ก็ได้ได้รับประโยชน์ด้วยเช่นกัน การเพิ่มประสิทธิภาพกระบวนการที่ใช้ร่วมกัน เช่น การโหลดข้อมูลปฏิทินจาก ฐานข้อมูล
- ค่ามัธยฐานของเวลาในการตอบสนองในการเริ่มต้นแอปแบบอินเทอร์แอกทีฟ (สถานการณ์พบบ่อยที่สุด) ลดลงจาก 775 ถึง 644 มิลลิวินาที (17%)
- ค่ามัธยฐานของเวลาในการตอบสนองแบบ Cold Start ลดลงจาก 1,058 มิลลิวินาที เป็น 901 มิลลิวินาที (15%)
- ค่ามัธยฐานของเวลาในการตอบสนองแบบ Warm Start ลดลงจาก 453 มิลลิวินาที เป็น 378 มิลลิวินาที (17%)
- ค่ามัธยฐานของอัตราเฟรมที่ไม่ดีลดลง 42-60% ในการดูกำหนดการและการดูเดือน
โปรดทราบว่าหากคุณใช้โปรไฟล์ Cloud ร่วมกับเกณฑ์พื้นฐาน โปรไฟล์ที่คุณน่าจะพบว่าการปรับปรุงลดลงเล็กน้อยในช่วง สัปดาห์แรกเมื่อมีการสร้างโปรไฟล์ Cloud อย่างไรก็ตาม คุณควร สังเกตถึงประสิทธิภาพที่เพิ่มขึ้นอย่างมีนัยสำคัญเมื่อใช้โปรไฟล์พื้นฐานนอกเหนือจากโปรไฟล์อื่นๆ การเพิ่มประสิทธิภาพที่คุณมีอยู่
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือและฟีเจอร์ โปรดดูแหล่งข้อมูลต่อไปนี้