กูเกิลชวนนักพัฒนา Android ใช้ Baseline Profiles ช่วยแอพเริ่มทำงานเร็วขึ้น 30% โดยไม่ต้องแก้โค้ด

ในโลกของการพัฒนาแอพบน Android ก่อนการรันแอพจริงๆ จะเกิดการคอมไพล์โค้ด 2 รอบ รอบแรกคือคอมไพเลอร์แปลงโค้ด Java/Kotlin เป็น dex bytecode ไว้ล่วงหน้าก่อนทำแพ็กเกจแอพ จากนั้นเมื่อติดตั้งในเครื่องแล้ว รันไทม์ ART จะแปลง bytecode เป็น machine code อีกครั้ง

ปัญหาคือการปรับแต่งประสิทธิภาพของ ART อาจไม่ดีเท่าที่ควร โดยเฉพาะในการรันครั้งแรกที่ต้องใช้เวลามาก ทำให้มีเทคนิคที่เรียกว่า profile สอน ART ว่าคลาสหรือเมธอดไหนที่ใช้บ่อย เพื่อให้ ART สามารถแปลงโค้ดรอไว้ก่อนระหว่างที่เครื่องไม่ถูกใช้งาน ปัญหาถัดมาคือตัว profile อาจยังไม่ดีและมีประสิทธิภาพมากพอ

ในยุค Android 9 เป็นต้นมา กูเกิลดึงข้อมูล profile ที่สร้างโดย ART จากเครื่องจำนวนมากกลับไปวิเคราะห์ และทำเป็น Cloud Profiles ตรงกลางเอาไว้รอบน Play Store หลังจากนั้นถ้ามีเครื่องใหม่ๆ ขอติดตั้งแอพ กูเกิลจะส่งไฟล์แอพพร้อม Cloud Profiles ที่ปรับแต่งมาเหมาะสมแล้วไปให้

ปัญหาของแนวคิด Cloud Profiles คือช่วงแรกๆ ที่แอพออกใหม่หรืออัพเดตใหม่ ยังไม่มี profile มากพอ ผู้ใช้กลุ่มแรกๆ จึงต้องใช้แอพแบบที่ไม่มี Cloud Profiles คอยช่วยเหลือ

No Description

กูเกิลแก้ปัญหานี้ด้วย Baseline Profiles ที่ใช้ปลั๊กอิน Android Gradle ช่วยสร้างขึ้นมาตั้งแต่ตอนคอมไพล์ครั้งแรก และจะถูกมัดรวมไปกับไฟล์ APK ขึ้น Play Store เพื่อส่งให้ผู้ใช้งานกลุ่มแรกๆ ได้เลย ช่วยแก้ปัญหาเรื่องการไม่มี Cloud Profiles ในช่วงแรกได้

Baseline Profiles มีใช้งานมาสักระยะแล้ว (ย้อนกลับไปใช้ได้ถึง Android 7 ด้วยซ้ำ) แต่กูเกิลเพิ่งเริ่มใช้งาน Baseline Profiles อย่างจริงจังบน Play Store เมื่อไม่นานมานี้ ผลคือการมี Baseline Profiles ช่วยให้แอพเริ่มทำงาน (startup time) ได้เร็วขึ้นถึง 30-40% เทียบกับการติดตั้งแบบไม่มี profile ช่วยเหลือ

ในงาน Google I/O 22 กูเกิลแจ้งว่า Baseline Profiles เข้าสถานะ stable แล้ว และชวนนักพัฒนามาใช้งาน โดยชูจุดเด่นว่าแอพสามารถทำงานเร็วขึ้นอย่างเห็นได้ชัด โดยไม่ต้องแก้ไขโค้ดใดๆ ขอเพียงเพิ่ม Baseline Profiles เข้าไปเท่านั้น

No Description

อีกข่าวที่เกี่ยวข้องกันอยู่บ้างคือ กูเกิลประกาศว่าจะอัพเดต ART นอกรอบการอัพเดต OS แล้ว มีผลกับ Android 12 ขึ้นไป ผลคือผู้ใช้งานจะได้ ART ที่ใหม่ขี้น ประสิทธิภาพดีขึ้น แก้บั๊กได้รวดเร็วเพราะไม่ต้องรอรอบอัพเดต

No Description

ที่มา – Google

from:https://www.blognone.com/node/128479