Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ขนาดของรุ่นเยาว์มีผลต่อประสิทธิภาพการรวบรวมขยะอย่างไร


ขนาดของรุ่นเยาว์มีผลต่อประสิทธิภาพการรวบรวมขยะอย่างไร


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

ความถี่ของคอลเล็กชั่นรอง

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

ขนาดของรุ่นเก่าและคอลเลกชันหลัก

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

ยอดคงเหลือที่ดีที่สุดขึ้นอยู่กับอายุการใช้งานของวัตถุ

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

ตัวเลือก JVM สำหรับการปรับแต่ง

ขนาดรุ่นเล็กสามารถควบคุมได้โดยใช้ตัวเลือก JVM ตัวอย่างเช่นตัวเลือก `-xx: newratio` กำหนดอัตราส่วนระหว่างรุ่นเก่าและรุ่นเยาว์ ตัวอย่างเช่น `-xx: newRatio = 3` หมายความว่าคนรุ่นเก่ามีขนาดของคนรุ่นใหม่สามเท่าดังนั้นคนรุ่นใหม่จึงอยู่ที่ประมาณหนึ่งในสี่ของกอง ตัวเลือกเช่น `-xx: newsize` และ` -xx: maxNewSize` อนุญาตให้ควบคุมได้แม่นยำมากขึ้นโดยการตั้งค่าขนาดหรือขอบเขตคงที่บนขนาดรุ่นเล็ก การแก้ไขขนาดรุ่นเล็กสามารถช่วยให้ประสิทธิภาพการรวบรวมขยะมีเสถียรภาพ

ช่องว่างผู้รอดชีวิตภายในคนรุ่นใหม่

ภายในคนรุ่นใหม่พื้นที่ผู้รอดชีวิตจัดการกับวัตถุที่รอดชีวิตจากคอลเลกชันเล็ก ๆ น้อย ๆ แต่อาจยังไม่แก่พอสำหรับการเลื่อนตำแหน่งให้กับคนรุ่นเก่า การปรับขนาดพื้นที่อวกาศผู้รอดชีวิต (กำหนดค่าโดย `-xx: Survivorratio`) ส่งผลกระทบต่อระยะเวลาที่วัตถุอยู่ในรุ่นเยาวชนก่อนโปรโมต พื้นที่ผู้รอดชีวิตที่เล็กเกินไปทำให้เกิดการส่งเสริมการเติบโตก่อนวัยอันควรเพิ่มขนาดรุ่นเก่าและความถี่การรวบรวมที่สำคัญ พื้นที่รอดชีวิตที่มีขนาดใหญ่เกินไปทำให้หน่วยความจำเสียและลดความสามารถของคนรุ่นใหม่สำหรับการจัดสรรใหม่

ส่งผลกระทบต่อปริมาณงานและเวลาหยุดชั่วคราว

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

การปรับแต่งและการบันทึกเชิงประจักษ์

การตรวจสอบการบันทึกการเก็บรวบรวมขยะ JVM สามารถช่วยกำหนดขนาดที่เหมาะสมสำหรับคนรุ่นใหม่โดยการวิเคราะห์ความถี่และระยะเวลาของคอลเลกชันเล็ก ๆ น้อย ๆ และคอลเล็กชันที่สำคัญพร้อมกับการใช้พื้นที่รอดชีวิต เครื่องมือและตัวเลือกเช่น `-xlog: GC, อายุ 'ให้ข้อมูลพฤติกรรม GC โดยละเอียดเพื่อปรับพารามิเตอร์เหล่านี้อย่างมีประสิทธิภาพตามลักษณะภาระงานจริง

สรุป

โดยสรุปขนาดของรุ่นเยาว์มีผลต่อประสิทธิภาพการรวบรวมขยะโดย:

- คนรุ่นใหม่ที่มีขนาดใหญ่ขึ้นลดความถี่ของคอลเลกชันเล็ก ๆ น้อย ๆ แต่อาจเพิ่มความถี่ของคอลเลกชันที่สำคัญเนื่องจากรุ่นเก่าที่เล็กกว่า
- คนรุ่นใหม่เพิ่มความถี่การรวบรวมเล็กน้อย แต่สั้นลงระยะเวลาการสะสมเล็กน้อย
- ขนาดที่เหมาะสมขึ้นอยู่กับรูปแบบอายุการใช้งานของวัตถุในแอปพลิเคชัน
-พารามิเตอร์ JVM เช่น `-xx: newratio`,` -xx: Newsize` และ `-xx: MaxNewSize` ควบคุมขนาดรุ่นเล็กสำหรับการปรับแต่ง
- การปรับขนาดอวกาศผู้รอดชีวิตส่งผลกระทบต่อการส่งเสริมวัตถุและประสิทธิภาพ GC โดยรวม
- การปรับแต่งประสิทธิภาพต้องใช้ความสมดุลอย่างระมัดระวังเพื่อเพิ่มประสิทธิภาพการรับส่งข้อมูลและเวลาหยุดชั่วคราวซึ่งได้รับการแจ้งจากบันทึกและการตรวจสอบ GC เชิงประจักษ์

ความสัมพันธ์นี้เป็นพื้นฐานในการจัดการพื้นที่ Java Heap อย่างมีประสิทธิภาพเพื่อลดค่าใช้จ่ายในการรวบรวมขยะและเพิ่มประสิทธิภาพของแอปพลิเคชันให้สูงสุด ทางเลือกของขนาดรุ่นเล็กเป็นปัจจัยสำคัญในกลยุทธ์การปรับแต่ง JVM ความซับซ้อนและการแลกเปลี่ยนนี้อธิบายว่าทำไมการวัดและการปรับแต่งอย่างระมัดระวังจึงเป็นสิ่งจำเป็นสำหรับพฤติกรรมการรวบรวมขยะที่ดีที่สุดในสภาพแวดล้อมการผลิต