Benim python programım meraklı bir performans davranışına sahiptir: Ne kadar uzun olursa, o kadar yavaş olur. Daha önce, dakikada onlarca iş biriminden dışarı çıkar. Bir saat sonra iş birimi başına onlarca dakika alıyor. Şüphelerim bunun sıkışık bir çöp toplayıcı tarafından yapılmasıdır.Çöp toplayıcının ne kadar zaman kullandığını?
Yakalama, komut dosyamın büyük işler için cProfile çalışması için fazla bellek açmasıdır. (bakınız: cProfile taking a lot of memory)
Kendi performans eklentimizi yazdık ve sistemimizin çoğunu gözlemleyebiliyoruz ve bunların hiçbiri problem gibi görünmüyor. Hala çevrilmemiş olan bir kaya GC'dir.
GC'ye ne kadar zaman geçtiğini görmek için başka bir yol var mı (profil veya cProfile yanında)? Python'da, çoğu çöp referans sayımı kullanılarak toplanır.
Evet, bunun farkındayım. Bana GC'nin ne kadar çok uğraştığını anlatabilirler, ama acil sorunlarım bellek değil, işlemci döngüleri ile ilgili. Eğer GC'nin kullandığı * zamanın * veya * kaç kez * kaçının * çalıştığını söyleyebilirseniz, bu yararlı olabilir. –
@Matthew: İşleminizin gc.collect() işlevini çağırmasına yardımcı olur ve ne kadar sürede dönmesi gerekir? –
@Thomas K, bu bana tek bir koleksiyonun ne kadar sürdüğünü söyler, ancak koleksiyonerin ne sıklıkla çalıştığını söyler. Sahip olduğum diğer veriler göz önüne alındığında, GC'nin sistem çalışırken daha sık ve daha az etkilendiğinden şüpheleniyorum. –