รู้จัก Project Leyden โครงการใหม่ของ Oracle เพื่อแก้ปัญหา Java ทำงานช้า กินแรมมาก

by mk
28 April 2020 - 04:27

Mark Reinhold หัวหน้าฝ่ายสถาปัตยกรรม Java ของ Oracle เสนอไอเดีย Project Leyden ที่ต้องการแก้ปัญหา Java เริ่มทำงานช้า, ต้องรอนานกว่าจะแตะระดับประสิทธิภาพเต็มที่ (time to peak performance) และใช้แรมมาก

แนวทางของ Project Leyden คือเสนอแนวคิดการคอมไพล์แอพพลิเคชันเป็น static image หรือ "อิมเมจปิด" ที่ไม่สามารถโหลดคลาสหรือไบต์โค้ดใดๆ เพิ่มได้อีกในตอนรัน เพื่อให้ตอนคอมไพล์สามารถรีดประสิทธิภาพได้อย่างเต็มที่ ลดคลาสที่ (รู้ล่วงหน้าว่า) ไม่ต้องใช้งานตอนรัน รวมถึงปรับแต่งประสิทธิภาพแบบ ahead-of-time (AOT) ได้อย่างจริงจัง

ผลคือขนาดของอิมเมจเล็กลง ระยะเวลาตอนเรียกโปรแกรมลดลง ระยะเวลาที่รันถึงระดับเต็มประสิทธิภาพสั้นลง

Reinhold บอกว่า Project Leyden ได้แรงบันดาลใจมาจากโครงการอื่นๆ เช่น GNU Compiler for Java และ GraalVM โดยสิ่งที่จะทำด้วยคือเพิ่มสเปกของ static image ลงในสเปกของ Java Platform เลย เพื่อให้ GraalVM ปรับมาอิงกับสเปกตัวนี้ด้วย นักพัฒนาจึงเลือกได้ว่าจะใช้ Leyden หรือ GraalVM เพราะเข้ากันได้บนสเปกเดียวกัน

ตัวของ Leyden จะไม่นำโค้ดของ GraalVM เข้ามาใช้ตรงๆ แต่จะพัฒนาจากฐานโค้ดของโครงการ JDK ในปัจจุบัน เช่น HotSpot VM, คอมไพเลอร์ jaotc เป็นต้น โครงการจะเริ่มพัฒนาโดยอิงจากฐานโค้ดของ Java 15 รุ่นที่กำลังพัฒนาอยู่ในปัจจุบัน แล้วแยกสายการพัฒนาออกมาต่างหาก โดยจะทยอยออกฟีเจอร์ทีละส่วนในอนาคต

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

ที่มา - OpenJDK via InfoWorld

Blognone Jobs Premium