ขนาดของคนรุ่นใหม่ในการรวบรวมขยะมีผลกระทบอย่างมีนัยสำคัญต่อประสิทธิภาพการเก็บขยะ คนรุ่นใหม่เป็นส่วนหนึ่งของกองที่มีการจัดสรรวัตถุใหม่ส่วนใหญ่และรวบรวมบ่อยกว่าคนรุ่นเก่า ความสัมพันธ์ระหว่างขนาดรุ่นเล็กและประสิทธิภาพการรวบรวมขยะเกี่ยวข้องกับการแลกเปลี่ยนต่าง ๆ ที่เกี่ยวข้องกับความถี่และระยะเวลาของเหตุการณ์การเก็บขยะ
ความถี่ของคอลเล็กชั่นรอง
การเพิ่มขนาดของคนรุ่นใหม่โดยทั่วไปส่งผลให้คอลเลกชันขยะเล็กน้อยน้อยลง คอลเลกชันเล็ก ๆ น้อย ๆ เกิดขึ้นเมื่อคนรุ่นใหม่เติมเต็มดังนั้นคนรุ่นใหม่จึงมีพื้นที่มากขึ้นสำหรับการจัดสรรใหม่ก่อนที่จะมีการเรียกคอลเลกชัน สิ่งนี้จะช่วยลดความถี่ของคอลเลกชันเหล่านี้ซึ่งสามารถปรับปรุงประสิทธิภาพได้เนื่องจากคอลเลกชันย่อยมักจะสั้นกว่าและก่อกวนน้อยกว่าคอลเลกชันหลัก เมื่อคนรุ่นใหม่มีขนาดใหญ่ 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 เชิงประจักษ์