Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ผลการปฏิบัติงานของการใช้ ZGC คืออะไรกับกองหลายเทอร์ไบต์


ผลการปฏิบัติงานของการใช้ ZGC คืออะไรกับกองหลายเทอร์ไบต์


การใช้ ZGC กับกองหลายเทอร์ไบต์อาจมีผลกระทบหลายประการ:

1. เวลาแฝงต่ำ: ZGC ได้รับการออกแบบมาเพื่อลดเวลาหยุดชั่วคราวเพื่อให้มั่นใจว่าแอปพลิเคชันยังคงตอบสนองแม้จะมีกองขนาดใหญ่ มันประสบความสำเร็จโดยการทำงานของรวบรวมขยะส่วนใหญ่พร้อมกับแอปพลิเคชันส่งผลให้เวลาหยุดชั่วคราวน้อยกว่า 10ms [3] [4]

2. ปริมาณงานสูง: ZGC ได้รับการออกแบบมาเพื่อให้ปริมาณงานสูงโดยลดเวลาที่ใช้ในการรวบรวมขยะ สิ่งนี้ทำให้มั่นใจได้ว่าแอปพลิเคชันสามารถทำงานต่อไปได้อย่างมีประสิทธิภาพแม้ภายใต้การใช้งานหน่วยความจำหนัก [2] [4]

3. การทำแผนที่มัลติ: ZGC ใช้การทำแผนที่มัลติแมปเพื่อแมปช่วงที่แตกต่างกันของหน่วยความจำเสมือนกับหน่วยความจำทางกายภาพเดียวกัน สิ่งนี้สามารถนำไปสู่การใช้หน่วยความจำที่เพิ่มขึ้นเนื่องจากระบบปฏิบัติการอาจรายงานการใช้หน่วยความจำขนาดใหญ่กว่า 3x เนื่องจากการแมปเพิ่มเติม [1]

4. พอยน์เตอร์สี: ZGC ใช้พอยน์เตอร์สีเพื่อเก็บข้อมูลเมตาในพอยน์เตอร์ 64 บิต สิ่งนี้สามารถสร้างงานเพิ่มเติมได้เมื่อ dereferencing pointers แต่เทคนิคการทำแผนที่มัลติแมปช่วยลดค่าใช้จ่ายนี้ [2]

5. NUMA-AWARE: ZGC ได้รับการออกแบบให้เป็น NUMA ที่รู้ตัวซึ่งหมายความว่าสามารถจัดการกองขนาดใหญ่และคอร์ CPU หลายตัวได้อย่างมีประสิทธิภาพ สิ่งนี้ทำให้มั่นใจได้ว่านักสะสมขยะสามารถใช้ประโยชน์จากทรัพยากรฮาร์ดแวร์ที่มีอยู่ [2] [4]

6. ตัวเลือกการปรับจูน: ZGC มีตัวเลือกการปรับแต่งหลายตัวเลือกเช่นการตั้งค่าขนาดฮีปสูงสุดและจำนวนเธรด GC ที่เกิดขึ้นพร้อมกัน ตัวเลือกเหล่านี้สามารถช่วยปรับสมดุลการใช้งานหน่วยความจำและประสิทธิภาพการรวบรวมขยะ [3] [4]

7. คุณสมบัติการทดลอง: ZGC เป็นคุณสมบัติการทดลองและต้องการตัวเลือกบรรทัดคำสั่งเฉพาะเพื่อเปิดใช้งาน เหมาะสำหรับแอปพลิเคชันที่ต้องหยุดเวลาหยุดสั้นมากและสามารถจัดการการจัดสรรหน่วยความจำขนาดใหญ่ [1] [3]

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

การอ้างอิง:
[1] https://stackoverflow.com/questions/62926652/the-java-zgc-garbage-collector-uses-a-lot-of-memory
[2] https://www.opsian.com/blog/javas-new-zgc-is-very-exciting/
[3] https://docs.oracle.com/en/java/javase/11/gctuning/z-garbage-collector1.html
[4] https://developers.redhat.com/articles/2021/11/02/how-choose-best-java-garbage-collector
[5] https://dzone.com/articles/java-z-garbage-collector-zgc-a-dep-dive-with-exam