Hatırladığım gibi, kopya toplayıcıların işaretçi referanslarının yerini iyileştirme eğilimi gösterdiğinden, kopya toplayıcıların disk belleği dostu olması gerekir. Bu, program (mutator) üzerinde bağlantıları izlerken daha az sayfa hatasına neden olacak ve izleme daha az sayfa hatasına neden olacağından bir sonraki toplama döngüsünü iyileştirecek olumlu bir etkiye sahiptir. İzleme gündemi (ilk önce hangi göstergelerin işlenmesi gerekir), veri yerinin iyileştirilmesinde etkili olabilir. Bu, farklı hücre tiplerindeki farklı işaretleyicilere erişim sayısının ölçülmesiyle iyileştirilebilir.
Şimdi, genel olarak bir izleme toplayıcısını düşünürseniz, genellikle henüz izlenmemiş olan işaretçileri takip eden bir yapıya sahip olmalısınız. Bu yapıyı, aynı sayfayı işaret eden tüm bekleyen işaretçiler bir arada tutulacak şekilde organize etmek mümkün olabilir (ancak, bu gibi işaretçilerin listesini tutmak için mevcut tekniklere bağlı olarak, bazı durumlarda daha fazla yer kaplayabilir). O zaman, olası bir politika, bellekteki sayfalara hiç bekleyen işaretçi kalmadığında, her zaman aynı sayfayı gösteren en büyük bekleme işaretçisi kümesini takip etmektir.
Üçüncü paragrafta, cevapladıktan sonra eklenen soru ile ilgili olarak, kopya toplama yine bir cevaptır. İşletim sistemi, sayfalar tamamen serbest bırakıldığından toplama zamanında ayrılan fiziksel sayfa sayısını azaltabilir. Bir işaret ve süpürme toplayıcı ile, tam sayfa arınma özgürlüğü olayı muhtemelen daha nadirdir, bu nedenle dikkate alınması gereken belirli bir machanizm değmez.
Bu tür fikirler doğaldır ve muhtemelen bazı makalelerde açıklanmaktadır. Ama elden hatırlamıyorum. Lisp GC ile ilgili ilk bildirilerin bu fikirlerden bazılarını içerdiğini düşünüyorum (örneğin: önce araba veya cdr izlenmeli mi?).
Kopyalama koleksiyonunun bu rolündeki iyi haber, disk belleği, kullanılabilir depolama alanını artırdığından kopya toplama için kolay olmasıdır. Kopya toplayıcının prensipte gerçek veri depolama için kullanılandan iki kat daha fazla alan gerektirdiğini hatırlayın. Şimdi, sayfalamanın etkisi aynı zamanda makinenin adres alanına ve kullanılabilir fiziksel belleğe de bağlıdır. Eski bilgisayarda, fiziksel bellek kullanılabilir adres alanından çok daha azdı, bu nedenle disk belleği gerçekten bir alan bonusu oldu ve GC kopyalaması gibi politikalara izin verdi. Fiziksel alan adres alanı kadar büyük olsa bile, bunu paylaşmak isteyebilirsiniz, böylece GC kullanan işlemin disk belleği olmadan daha az adres alanı olur ( sayfalandırmaya bakın)). Bu sözler, kuşak koleksiyoncularının kullanımından biraz daha fazladır. Genellikle bu nitelikler ve genç neslin çoğunlukla kısa ömürlü olması nedeniyle kopya koleksiyonunu genç nesiller için kullanırlar.
Daha sonra, bir önceki soruda tartışılan, nesil GC'nin önbellek sistemi ile tüm etkileşimlerine sahipsiniz: Nesil çöp toplayıcıları doğal olarak önbellek dostu mudur?
Bu konu hakkında daha fazla bilgi için, örneğin çöp toplama ve yerellik gibi anahtar kelimelerle web'de arama yaparım .