จากบทความเรื่อง เปรียบเทียบ JVM OpenJ9 และ HotSpot
โดยที่ OpenJ9 เป็นสิ่งที่น่าสนใจมาก ๆ
เป้าหมายหลักของ OpenJ9 คือ
ปรับปรุงการจัดการ resource ต่าง ๆ นั่นเอง
ทั้งเรื่องของ startup time และการใช้ memory/cpu น้อยลง
ซึ่งช่วยทำให้เหมาะสมต่อการนำไป run บน Cloud และ Container
นั่นคือการพยายามทำให้ขนาดของ service ที่พัฒนาด้วยภาษาบน JVM เล็กลง
ถึงแม้ว่ามันจะไม่ค่อยเล็กมากก็ตาม !!
ดังนั้นเลยลองเอามา run ใน Docker หน่อยสิ ว่าจะเป็นอย่างไร ?
ข่าวดีคือ Docker image ของ AdoptOpenJDK มีให้ด้วยก็เลือกได้ตามสะดวกเลย
เริ่มด้วยการใช้งาน AdoptOpenJDK กับ HotSpot
โดยระบบงานตัวอย่างพัฒนาด้วย Spring Boot
ซึ่ง code ต่าง ๆ อยู่ที่ Github:: Up1
จากการ run ด้วย docker-compose ได้ผลดังนี้
[gist id="9446148764a6d6bed60ded1e0c42ceb7" file="1.txt"]ต่อมาลองเปลี่ยนไปใช้กับ OpenJ9 บ้าง
[gist id="9446148764a6d6bed60ded1e0c42ceb7" file="Dockerfile-openj9"]จากการ run ด้วย docker-compose ได้ผลดังนี้
[gist id="9446148764a6d6bed60ded1e0c42ceb7" file="2.txt"]จากผลการใช้งานถือว่า OpenJ9 นั้น
ทำให้ startup time ของระบบที่พัฒนาด้วย Spring Boot เร็วขึ้น
และใช้ memory น้อยลงมากจริง ๆ ด้วย
เป็นตัวเลือกที่น่าสนใจมาก ๆ