Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 2036

ว่าง ๆ มาลอง custom JRE ด้วย Java Linker กันหน่อย

$
0
0

ตั้งแต่ JDK 9 ขึ้นมานั้น จะมี Java Linker มาให้ ซึ่งเป็น command line tool 
ช่วยให้เราสามารถทำการ custom JRE (Java Runtime Environment) 
เหมาะสมกับ application ของเราได้เอง
โดยจะทำงานร่วมกับแนวคิดของ module นั่นเอง

ก่อนอื่นต้องเข้าใจก่อนว่า

ตั้งแต่ Java 8 ขึ้นมานั้น
แนวคิด Module หรือ Project Jigsaw ถูกนำเข้ามาใช้งาน
ทำให้เราสามารถเลือกหรือจัดการ JRE ตามรูปแบบการใช้งานได้
ช่วยทำให้ Software ที่ส่งมอบมีขนาดเล็กลง
ใช้ resource ต่าง ๆ น้อยลง
ทำให้   run ระบบงานได้หลากหลายมากขึ้น

เราสามารถดู module ต่าง ๆ จาก JRE ที่ใช้งานอยู่ในปัจจุบันด้วยคำสั่ง

[gist id="2ce1a60122081e6de0c78bac0ab5cd5f" file="1.txt"]

และใน Java 9 ก็มี command line ชื่อว่า jlink
ช่วยให้เราสามารถ custom JRE ได้ง่ายขึ้น
เพื่อให้เข้าใจง่าย ๆ มาลองกับ Hello World ดีกว่า

[gist id="2ce1a60122081e6de0c78bac0ab5cd5f" file="Hello.java"]

ทำการกำหนดให้ code ตัวอย่างอยู่ใน module ชื่อว่า demo.module

[gist id="2ce1a60122081e6de0c78bac0ab5cd5f" file="module-info.java"]

ซึ่งถ้าเราใช้ JRE แบบ default นั้นจะพบว่ามีจำนวน module มากมาย
มีขนาดมากกว่า 200 MB ซึ่งเยอะเกินความจำเป็น
เนื่องจาก code ตัวอย่างของเรานั้น
จะใช้เพียง Object, String และ System class เท่านั้น
แถม code น่าจะมีขนาดเพียง 1 KB เท่านั้นเอง
ดังนั้นมา custom JRE ให้เหมาะสมกับระบบงาน Hello World ของเราดีกว่า

ทำการ compile และ run โปรแกรมในรูปแบบของ Module ได้ดังนี้

[gist id="2ce1a60122081e6de0c78bac0ab5cd5f" file="2.txt"]

โดย Hello World นั้นจะใช้งานเพียง base module ของ JRE ที่มีมาให้เท่านั้น
ดังนั้นเราจึงทำการสร้าง JRE ให้เหมาะสมด้วยการใช้งานผ่าน jlink ดังนี้

[gist id="2ce1a60122081e6de0c78bac0ab5cd5f" file="3.txt"]

ผลที่ได้คือ JRE ใหม่ที่เหมาะสมกับระบบงานของเราเท่านั้น
ซึ่งขนาดของ JRE ที่ได้จะมีขนาดเพียง 40 MB เท่านั้น !!
น่าจะเป็นอีกแนวทางหนึ่งในการพัฒนาระบบด้วย Java ให้มีประสิทธิภาพสูงขึ้น

ตัวอย่าง code ทั้งหมดอยู่ที่ GitHub::Demo Custom JRE


Viewing all articles
Browse latest Browse all 2036

Trending Articles