GraalVM Native Images
GraalVM native image สำหรับการเริ่มต้นที่รวดเร็ว การคอมไพล์ native, AOT, reflection hints, ข้อจำกัด
1GraalVM Native Image คืออะไร?
GraalVM Native Image คืออะไร?
คำตอบ
GraalVM Native Image เป็นเทคโนโลยีที่คอมไพล์แอปพลิเคชัน Java เป็นไฟล์ executable native แบบสแตนด์อโลนผ่านการคอมไพล์ AOT (Ahead-of-Time) ซึ่งต่างจาก JVM แบบดั้งเดิมที่ใช้การคอมไพล์ JIT (Just-In-Time) ขณะรันไทม์ Native Image จะวิเคราะห์และคอมไพล์โค้ดทั้งหมดล่วงหน้า สิ่งนี้ทำให้เริ่มต้นได้เกือบจะทันที (มิลลิวินาที) ใช้หน่วยความจำน้อยลง และไม่ต้องพึ่งพา JVM ในการทำงาน
2ความแตกต่างหลักระหว่างการคอมไพล์ AOT และ JIT คืออะไร?
ความแตกต่างหลักระหว่างการคอมไพล์ AOT และ JIT คืออะไร?
คำตอบ
การคอมไพล์ AOT (Ahead-of-Time) จะวิเคราะห์และคอมไพล์โค้ดทั้งหมดก่อนการทำงาน โดยสร้าง native executable ที่ปรับให้เหมาะสมแล้ว ส่วนการคอมไพล์ JIT (Just-In-Time) จะคอมไพล์ Java bytecode เป็นรหัสเครื่องทีละขั้นในระหว่างการทำงาน AOT ให้การเริ่มต้นทำงานทันทีแต่ต้องใช้เวลา build นานกว่า ในขณะที่ JIT เริ่มต้นช้าแต่ปรับโค้ดให้เหมาะสมขึ้นเรื่อย ๆ ตามรูปแบบการใช้งานจริง
3ควรใช้ Maven plugin ใดในการสร้าง native image ของ Spring Boot?
ควรใช้ Maven plugin ใดในการสร้าง native image ของ Spring Boot?
คำตอบ
native-maven-plugin จากกลุ่ม org.graalvm.buildtools คือ plugin อย่างเป็นทางการสำหรับสร้าง native image ด้วย Maven โดย Spring Boot starter parent จะเปิดใช้งานมันโดยอัตโนมัติใน profile 'native' เพียงประกาศ plugin ในส่วน plugins แล้วรัน mvn -Pnative spring-boot:build-image หรือ mvn -Pnative package ตามโหมดที่ต้องการ
จะเปิดใช้งาน Maven profile สำหรับการคอมไพล์แบบ native ของ Spring Boot ได้อย่างไร?
หลักการ 'closed-world assumption' ใน GraalVM Native Image คืออะไร?
+17 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Spring Boot อื่นๆ
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
การทำ Logging ด้วย SLF4J และ Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
การจัดการข้อยกเว้น
Bean Validation
พื้นฐาน Spring Data JPA
เอนทิตี JPA และความสัมพันธ์
การสืบค้น JPA
Spring Data Repositories
พื้นฐาน Spring Security
Spring Boot Actuator
การทดสอบหน่วยด้วย JUnit และ Mockito
การทดสอบ Spring Boot
Profiles และ Environment
RestTemplate และ WebClient
Async และ Scheduling
Caching ด้วย Spring
Spring WebFlux (Reactive)
ทรานแซกชัน Spring
การยืนยันตัวตนและการให้สิทธิ์ขั้นสูง
JWT และความปลอดภัยแบบ Stateless
OAuth2 และ Authorization Server
Spring Boot และ Docker
Microservices ด้วย Spring
Spring Cloud Config
การเพิ่มประสิทธิภาพการทำงาน
เชี่ยวชาญ Spring Boot สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี