อย่างที่ฉันจำได้ว่านักสะสมคัดลอกควรจะเป็นเพจที่เป็นมิตรเนื่องจากการติดตามโดยการคัดลอกมีแนวโน้มที่จะปรับปรุงท้องถิ่นของการอ้างอิงตัวชี้ สิ่งนี้มีผลในเชิงบวกต่อโปรแกรม (mutator) ที่จะทำให้เกิดความผิดพลาดของหน้าน้อยลงเมื่อติดตามลิงค์และจะปรับปรุงวงจรการรวบรวมต่อไปเนื่องจากการติดตามจะทำให้เกิดความผิดพลาดของหน้าน้อยลง วาระการติดตาม (ซึ่งควรประมวลผลตัวชี้ก่อน) อาจมีผลกระทบต่อประสิทธิภาพในการปรับปรุงตำแหน่งข้อมูล สิ่งนี้อาจได้รับการปรับปรุงให้ดีขึ้นโดยการรวบรวมสถิติเกี่ยวกับจำนวนการเข้าถึงพอยน์เตอร์ที่แตกต่างกันในเซลล์ประเภทต่างๆ
ตอนนี้ถ้าคุณพิจารณาตัวรวบรวมการติดตามโดยทั่วไปคุณต้องรักษาโครงสร้างที่ติดตามตัวชี้ที่ยังไม่ได้ติดตาม อาจเป็นไปได้ที่จะจัดโครงสร้างนี้เพื่อให้พอยน์เตอร์ที่รอคอยชี้ไปที่หน้าเดียวกันจะถูกเก็บไว้ด้วยกัน (แม้ว่าอาจใช้พื้นที่มากขึ้นในบางกรณีขึ้นอยู่กับเทคนิคที่มีเพื่อเก็บรายการพอยน์เตอร์ดังกล่าว) นโยบายที่เป็นไปได้คือการติดตามชุดตัวชี้การรอที่ใหญ่ที่สุดก่อนชี้ไปที่หน้าเดียวกันเสมอเมื่อไม่มีตัวชี้การรอที่ปล่อยให้หน้าในหน่วยความจำ
เกี่ยวกับคำถามในย่อหน้าที่สามซึ่งเพิ่มหลังจากที่ฉันตอบแล้วการคัดลอกคอลเลกชันเป็นคำตอบอีกครั้ง ระบบปฏิบัติการอาจลดจำนวนหน้าฟิสิคัลที่ปันส่วนในเวลาที่รวบรวมเนื่องจากหน้านั้นเป็นอิสระอย่างสมบูรณ์ ด้วยตัวรวบรวมเครื่องหมายและตัวกวาดเหตุการณ์ของการฟูลลิ่งแบบเต็มหน้าอาจจะหายากกว่ามากดังนั้นจึงไม่ควรคำนึงถึงกลไกเฉพาะที่ควรคำนึงถึง
ความคิดแบบนี้เป็นเรื่องธรรมดาและอาจอธิบายไว้ในบทความบางเรื่อง แต่ฉันไม่จำมันออกมือ ฉันคิดว่าเอกสารเริ่มต้นของ Lisp GC มีแนวคิดเหล่านี้อยู่บ้าง (เช่นควรติดตาม car หรือ cdr ก่อนหรือไม่)
ข่าวดีในบทบาทของการคัดลอกคอลเลกชันนี้ก็คือเพจจะเป็นมิตรกับการคัดลอกคอลเลกชันเนื่องจากมันเพิ่มพื้นที่จัดเก็บที่มีอยู่ โปรดจำไว้ว่าตัวคัดลอกตัวเก็บรวบรวมต้องการหลักการในพื้นที่สองเท่าของที่ใช้สำหรับการจัดเก็บข้อมูลจริง ตอนนี้เอฟเฟ็กต์ของการเพจจะขึ้นอยู่กับพื้นที่ที่อยู่ของเครื่องและหน่วยความจำกายภาพที่มีอยู่ ในคอมพิวเตอร์รุ่นเก่าหน่วยความจำกายภาพน้อยกว่าพื้นที่ที่อยู่ที่มีอยู่ดังนั้นเพจจึงเป็นโบนัสพื้นที่จริง ๆ จึงอนุญาตให้ใช้นโยบายเช่นการคัดลอก GC แม้เมื่อพื้นที่ทางกายภาพมีขนาดใหญ่เท่ากับพื้นที่ที่อยู่ แต่ก็อาจต้องการแบ่งปันเพื่อที่กระบวนการที่ใช้ GC จะมีพื้นที่ที่อยู่น้อยลงโดยไม่มีการสลับหน้า (ดูการสลับหน้า) คำพูดเหล่านี้ค่อนข้างถูกแทนที่โดยการใช้งานของนักสะสมรุ่น พวกเขามักใช้การเก็บสำเนาสำหรับคนรุ่นใหม่อย่างแม่นยำเพราะคุณสมบัติเหล่านี้และเพราะคนรุ่นใหม่ส่วนใหญ่มีอายุสั้น
จากนั้นคุณมีการโต้ตอบทั้งหมดของ generational GC กับระบบแคชที่ถูกกล่าวถึงในคำถามก่อนหน้านี้: ตัวรวบรวมขยะทั่วไปคือแคชที่เป็นมิตรโดยธรรมชาติหรือไม่?
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาเหล่านี้ผมจะค้นหาเว็บด้วยตัวอย่างเช่นคำหลักที่เก็บขยะและบริเวณใกล้เคียง