Tags:
Node Thumbnail

ฟีเจอร์ใหม่ของ Android 7.0 ที่ลึกลงไปในระดับของการคอมไพล์คือการนำเทคนิค Just in Time (JIT) compiler มาใช้กับรันไทม์แบบ ART ที่เริ่มใช้มาตั้งแต่ Android 5.0

ART ใช้แนวทางการคอมไพล์แบบ Ahead of Time (AOT) หรือคอมไพล์รอไว้ก่อนรันแอพ ข้อดีของ AOT คือไม่ต้องคอมไพล์ใหม่ทุกครั้งเมื่อรันแอพ (ส่วนใหญ่จะคอมไพล์ตอนติดตั้งแอพจาก Play Store) การรันแอพใช้แรมน้อยลง ใช้ทรัพยากรน้อยลง ประหยัดแบตเตอรี่มากขึ้น แต่ข้อเสียคือเปลืองพื้นที่เก็บไฟล์แอพที่คอมไพล์แล้ว กระบวนการติดตั้งแอพช้าลง และแอพที่คอมไพล์แล้วจะผูกกับคอนฟิกของระบบขณะคอมไพล์ ถ้าหากเราอัพเดตระบบปฏิบัติการใหม่ คอนฟิกเปลี่ยน แอพจะต้องถูกคอมไพล์ใหม่ตอนรีบูตเครื่องครั้งแรก (ซึ่งเป็นที่มาของหน้าจอ App Optimization)

ปัญหาเรื่องการรอ App Optimization อาจไม่ใช่เรื่องใหญ่ในอดีต เพราะกูเกิลอัพเดตระบบปฏิบัติการปีละครั้ง แต่ตอนนี้กูเกิลเปลี่ยนมาเป็นอัพเดตแพตช์ความปลอดภัยให้ทุกเดือน การต้องรีบูตเครื่องใหม่และรอคอมไพล์ใหม่ทุกครั้งคงไม่สะดวกนัก

ใน Android 7.0 กูเกิลจึงนำเทคนิคการคอมไพล์แบบ Just in Time (JIT) หรือคอมไพล์ตอนรันแอพมาผสมด้วย เพื่อดึงจุดเด่นของทั้ง JIT และ AOT มาใช้ร่วมกัน (ถือเป็นไฮบริดระหว่าง JIT/AOT)

Android 7.0 จะเลือกวิธีคอมไพล์แอพตามสถานการณ์เพื่อให้ได้ประโยชน์สูงสุด เช่น เมื่ออัพเดตและบูตเครื่องแล้ว ไม่ต้องคอมไพล์แบบ AOT ให้เสียเวลารอ optimize แต่จะไปคอมไพล์แบบ JIT แทนตอนรันแอพครั้งแรก และถ้ามือถือเราวางอยู่นิ่งๆ ไม่ใช่งาน แถมยังเสียบปลั๊กชาร์จไฟ ระบบจะใช้เวลาช่วงนี้มาคอมไพล์แบบ AOT ให้แทน

Android 7.0 ยังสามารถแยกส่วนการคอมไพล์ได้ด้วย (profile-guided compilation) เช่น บางส่วนอาจคอมไพล์แบบ AOT รอไว้ก่อน และบางส่วนค่อยรอคอมไพล์แบบ JIT ตอนรัน ซึ่งตัวระบบปฏิบัติการจะประเมินและปรับแต่งให้เองตามความเหมาะสมของแอพแต่ละตัว

ข้อดีของการนำ JIT มาใช้งานคือระยะเวลาติดตั้งแอพเร็วขึ้น และไม่ต้องรอ optimization ตอนรีบูตหลังอัพเดตอีกต่อไป

No Description

การบรรยายเรื่อง ART ในงาน Google I/O 2016

ความแตกต่างของ JIT กับ AOT (ภาพประกอบจาก IBM)

No Description

ที่มา - Android Developers, Ars Technica

Get latest news from Blognone

Comments

By: hisoft
ContributorWindows PhoneWindows
on 29 August 2016 - 10:15 #935939
hisoft's picture

แอปก็ ANT ตัว OS ก็แยกพาร์ทิชันทำอัปเดตแบบรีบูตไม่เสียเวลาได้อีก เจ๋งไปหมดเลยนะครับนี่

By: ninwatza
AndroidWindows
on 29 August 2016 - 10:30 #935957

นี่สิครับ นวัตกรรม ของจริง

By: itpcc
ContributoriPhoneRed HatUbuntu
on 29 August 2016 - 10:31 #935960
itpcc's picture
By: Jaddngow
AndroidUbuntuWindows
on 29 August 2016 - 10:34 #935961
Jaddngow's picture

storage ที่ถูกลงเรื่อยๆทำให้ความสิ้นเปลืองพื้นที่ของAOTน่าจะไม่ทำให้เป็นภาระผู้ใช้งานนะครับ มีแบบใหม่ก็ดี แต่ถ้าแบบเก่าผมก็ไม่มีปัญหา

By: photo-life
AndroidUbuntuWindows
on 29 August 2016 - 10:43 #935967 Reply to:935961

เหมือนจะเน้นไปที่เรื่องเวลาการรีบูตเครื่องหลังอัพเดทเป็นหลักครับ เพราะสุดท้ายแล้วก็จะคอมไพล์แอพทั้งหมด(AOT)ตอนชาร์ตแบตอยู่ดีครับ

By: blue111
AndroidUbuntuWindows
on 29 August 2016 - 10:56 #935973 Reply to:935961

edit *เนื้อหาซ้ำข้างบนอ่านผ่านเลยครับ

By: nununu
Windows Phone
on 29 August 2016 - 11:18 #935987

return of the jit

By: UltimaWeapon
Windows PhoneRed HatWindowsIn Love
on 29 August 2016 - 12:55 #936011
UltimaWeapon's picture

ผมหนีกลับมาใช้ Lumia 950 ละ ใช้ LG G3 + Android 6.0 แล้วไม่ปลื้มอย่างแรง ไอ้เราก็นึกว่าจะดีขึ้นกว่าตอนใช้ S2 + 4.0 แต่ไม่เลย UX ห่วยยังไงก็ยังห่วยยังงั้น แถม UI ก็ยังกระตุกเหมือนเดิม มีดีแค่ฟีเจอร์เยอะขึ้น

นี่ถ้า iPhone มี Qi นะ ผมไปใช้ละ

By: hisoft
ContributorWindows PhoneWindows
on 29 August 2016 - 14:40 #936032 Reply to:936011
hisoft's picture

มุมมองบางอย่างผมถูกใจฝั่งกูเกิลเยอะมากครับ คิดมานานมากแล้วว่าวิสัยทัศน์เค้าดีมากและคงหนีไม่พ้นเข้าสักวัน
W10M ก็มีดีเยอะนะครับ แค่แอปมันน้อยมายาวนานจนแม้แต่ไมโครซอฟท์เองก็อืดกับมันไปด้วย ฮาาาา
อย่างน้อยตอนนี้ก็ได้อัปเดตส่วนมากพร้อมๆ กับ PC ตามที่เคยบอกว่าอยากให้เป็นแบบนี้

By: 7elven
ContributoriPhoneWindows PhoneAndroid
on 29 August 2016 - 14:54 #936034 Reply to:936011

ยืนยันว่า UX ห่วยอีกเสียง เพราะใช้ iphone5s คู่กับ s7 edge
ประสบการณ์ใช้งาน iphone เหนือกว่าเห็นๆ