2008-10-20 13 views
6

Kuşak çöp toplayıcı içeren bir program yazıyorum. Sadece iki nesil var. Merak ettiğim şey: Tam bir koleksiyon yaparken, önce genç nesneleri toplayarak, hayatta kalanları eski kuşakla tanıştırarak ve daha sonra eski nesli toplayarak ya da sadece çöp toplaması gereken her şeyi (performans açısından) kazanabilir miyim? bir süpürme? İnsanların genelde nasıl bir şey yaptığını bilmiyorum.Genç nesli ilk önce tam bir çöp koleksiyonunda toplar mısın?

İki adımlı yöntemi şimdi kullanıyorum çünkü uygulamak biraz daha kolaydı, ancak belki de tek adımlı bir yöntem daha verimli olurdu?

Çöp toplayıcı, önemliyse, kopyalama yapmıyor.

cevap

5

Kurtulanları ne sıklıkla tanıttığınıza bağlıdır. Sık sık onları teşvik ederseniz, o zaman tek bir taramada GC yaparak çok daha iyi yapacağınız görünüyor. Eğer yapmazsan, çok benzer olurlar.

Her iki durumda da yaptığınız gibi biraz fazla iş yaptığınız anlaşılıyor. Örneğin, terfi edilen herkes doğal olarak iki kez kontrol edilir (bir kez genç ve tekrar eski gibi). Yine, bu çok sık olmazsa, daha basit iki adımlı yöntemle (zaten çalışmış olduğunuzdan ve kazanacak çok az şey olduğundan) emin olabilirdim.

İlgili konular