0Pricing
Java Academy · บทเรียน

GraalVM คืออะไร

VM ประสิทธิภาพสูงที่รองรับหลายภาษา

GraalVM คืออะไร เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน

GraalVM คืออะไร

GraalVM คือชุดแจกจ่าย JDK ประสิทธิภาพสูงที่สร้างบนคอมไพเลอร์แบบทันเวลาสมัยใหม่ชื่อ กราล โดยสามารถทำให้ Java ทั่วไปทำงานได้เร็วขึ้นในงานหลายประเภท และเพิ่มความสามารถเด่นสองประการ ได้แก่ การทำงานหลายภาษา และการคอมไพล์เนทีฟล่วงหน้า

JDK ที่นำมาแทนได้ทันที

GraalVM เป็น JDK แบบครบชุด ทั้ง javac, java และไบต์โค้ดที่มีอยู่เดิมยังทำงานได้โดยไม่ต้องแก้ไข ความแตกต่างอยู่ที่คอมไพเลอร์เบื้องหลังและเครื่องมือเพิ่มเติมที่มาพร้อมกัน เช่น native-image

public class Main {
    public static void main(String[] args) {
        System.out.println("Runs the same on GraalVM as on any JDK");
        System.out.println("Java: " + System.getProperty("java.version"));
    }
}

คอมไพเลอร์กราล

คอมไพเลอร์แบบทันเวลาของกราลเขียนขึ้นด้วย Java เอง โดยทำการปรับปรุงประสิทธิภาพอย่างเข้มข้น เช่น การแทรกโค้ดขั้นสูง การวิเคราะห์การหลุดพ้นบางส่วน และการปรับปรุงประสิทธิภาพเชิงคาดการณ์ จึงมักทำงานได้ดีกว่าคอมไพเลอร์ C2 แบบดั้งเดิมกับโค้ดที่ใช้การนามธรรมมากและสร้างการจองหน่วยความจำจำนวนมาก

การทำงานหลายภาษาด้วยทรัฟเฟิล

GraalVM มาพร้อมเฟรมเวิร์ก ทรัฟเฟิล ซึ่งทำให้หลายภาษาทำงานบน VM เดียวกันและเรียกใช้งานระหว่างกันได้ มีการสร้างส่วนรองรับสำหรับ JavaScript, ไพทอน, รูบี, R และ WebAssembly ค่าเหล่านี้สามารถข้ามขอบเขตระหว่างภาษาได้โดยมีโอเวอร์เฮดต่ำ

ตัวอย่างการทำงานหลายภาษา (เชิงแนวคิด)

ด้วยส่วนต่อประสานการทำงานหลายภาษา คุณจะสร้าง Context และประเมินโค้ดในภาษาอื่น จากนั้นอ่านผลลัพธ์กลับมาเป็น Java คลาสต่าง ๆ อยู่ใน org.graalvm.polyglot

// Requires GraalVM polyglot runtime
import org.graalvm.polyglot.*;

public class Main {
    public static void main(String[] args) {
        try (Context ctx = Context.create()) {
            Value sum = ctx.eval("js", "40 + 2");
            System.out.println(sum.asInt());
        }
    }
}

อิมเมจเนทีฟ

เครื่องมือ native-image จะคอมไพล์ Java ล่วงหน้า ให้เป็นไฟล์ปฏิบัติการเนทีฟแบบอยู่ในตัว ไม่มี JVM ขณะทำงาน และไม่มีการโหลดคลาสหรือการอุ่นเครื่องคอมไพเลอร์แบบทันเวลา โปรแกรมจึงเริ่มทำงานได้ภายในระดับมิลลิวินาที

รุ่นต่าง ๆ

GraalVM มีทั้งรุ่นชุมชนที่ใช้งานได้ฟรี และการแจกจ่าย GraalVM ของออราเคิลที่มีการปรับปรุงประสิทธิภาพเพิ่มเติม ทั้งสองรุ่นมี native-image และสำหรับการเรียนรู้รวมถึงการใช้งานจริงจำนวนมาก รุ่นชุมชนก็เพียงพอแล้ว

เหตุผลที่สำคัญต่อคลาวด์

การเริ่มทำงานที่รวดเร็วและการใช้หน่วยความจำน้อยทำให้อิมเมจเนทีฟเหมาะอย่างยิ่งกับฟังก์ชันแบบไร้เซิร์ฟเวอร์ เครื่องมือบรรทัดคำสั่ง และคอนเทนเนอร์ที่ปรับขนาดลงจนเป็นศูนย์ได้ บริการ Java แบบเนทีฟสามารถเริ่มทำงานได้เร็วพอ ๆ กับไบนารีภาษาโกที่เทียบเคียงกัน จึงช่วยลบข้อเสียที่ JVM มีมายาวนาน

การทำงานทันเวลาเทียบกับ AOT

มีรูปแบบการทำงานสองแบบที่ใช้ร่วมกันได้:

  • การคอมไพล์ขณะทำงาน (คอมไพเลอร์กราล) ปรับปรุงประสิทธิภาพขณะทำงานโดยใช้ข้อมูลการวัดจริง เหมาะที่สุดสำหรับอัตราการประมวลผลสูงสุดของเซิร์ฟเวอร์ที่ทำงานต่อเนื่องเป็นเวลานาน
  • AOT (native-image) คอมไพล์ก่อนเริ่มทำงาน เหมาะที่สุดสำหรับการเริ่มทำงานและการใช้หน่วยความจำ

การรองรับเฟรมเวิร์ก

เฟรมเวิร์กสมัยใหม่อย่าง Spring Boot, ควาร์คัส และไมโครนอตมีการรองรับ native-image อย่างเต็มรูปแบบ โดยคำนวณการกำหนดค่าล่วงหน้าในเวลาสร้าง ทำให้แอปพลิเคชันของคุณคอมไพล์เป็นไบนารีเนทีฟได้อย่างราบรื่น

การเลือก GraalVM

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

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจของคุณเกี่ยวกับ GraalVM

ทบทวน

คุณได้ทำความรู้จักกับ GraalVM:

  • JDK แบบครบชุดที่สร้างบนคอมไพเลอร์แบบทันเวลาของกราลประสิทธิภาพสูง
  • ทรัฟเฟิลช่วยให้ทำงานหลายภาษาและเรียกใช้ข้ามภาษาได้
  • native-imageคอมไพล์ Java ล่วงหน้าให้เป็นไฟล์ปฏิบัติการเนทีฟ
  • การคอมไพล์ขณะทำงานเหมาะกับอัตราการประมวลผลของงานที่ทำต่อเนื่อง ส่วน AOT เหมาะกับการเริ่มทำงานและการใช้หน่วยความจำ
  • เฟรมเวิร์กอย่าง Spring Boot, ควาร์คัส และไมโครนอตรองรับการสร้างไบนารีเนทีฟ

คำถามที่พบบ่อย

บทเรียน “GraalVM คืออะไร” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “GraalVM คืออะไร” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “GraalVM คืออะไร”

VM ประสิทธิภาพสูงที่รองรับหลายภาษา คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “GraalVM คืออะไร” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม

ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. GraalVM คืออะไร
  2. การสร้างอิมเมจเนทีฟ
  3. การสะท้อนและการกำหนดค่า
  4. ข้อแลกเปลี่ยนของอิมเมจเนทีฟ
← กลับไปที่ Java Academy