Shenandoah ใน OpenJDK 17 : ทำให้ GC Pause ต่ำกว่าระดับมิลลิวินาที
(developers.redhat.com)- โปรเจ็กต์ Shenandoah Garbage Collection มีเป้าหมายเพื่อลดเวลาหยุดชั่วคราวระหว่าง GC
→ เพิ่มการตอบสนองด้วยการประมวลผลแบบ Concurrent
→ JDK12 : นำ Concurrent Heap Evacuation มาใช้ ทำให้ล้างฮีปได้โดยไม่ต้องหยุดแอป
→ JDK14 : Concurrent Class Unloading
→ JDK16 : Concurrent Reference Processing
→ JDK17 : ด้วยการนำ Concurrent Thread-stack Processing มาใช้ จึงทำให้ Pause ต่ำกว่าระดับมิลลิวินาทีได้
2 ความคิดเห็น
ZGC ก็ค่อนข้างมีชื่อเสียงเหมือนกันนะครับ
แต่จะใช้ 64 บิตในพอยน์เตอร์ของตัวแปร (https://img1.daumcdn.net/thumb/R1280x0/…) เลยใช้งานได้เฉพาะบนระบบปฏิบัติการ 64 บิตเท่านั้น
เมื่อก่อนผมเคยค้นเรื่องประสิทธิภาพของ VM สำหรับภาษาสคริปต์อยู่เหมือนกัน
ในกรณีของ V8 ของ JS เขาว่าใช้หลักการประมาณนี้ครับ
https://v8.dev/blog/concurrent-marking
https://v8.dev/blog/orinoco
https://v8.dev/blog/trash-talk
https://v8.dev/blog/high-performance-cpp-gc
แนะนำคุณลักษณะของ Shenandoah gc และอัลกอริทึมแบบง่าย ๆ
https://dev-punxism.tistory.com/entry/Shenandoah-gc
https://meetup.toast.com/posts/234
ส่วนตัวแล้ว ผมเคยรู้จัก Shenandoah แค่จากเนื้อเพลง Take Me Home Country Road มาก่อน..