Bu konuda oldukça çalıştım ve bazılarını burada açıkladım . Boamm GC'yi C ++ ile kıyaslamıştım, kullanarak tahsis ettim malloc
ama serbest bırakma, tahsis etme ve serbest bırakma free
ve C + 'da yazılmış özel olarak oluşturulmuş bir işaretleme bölgesi GC'sini listeledi, hepsi OCaml'in GC-listesini kullanarak liste tabanlı bir n-kraliçe çözücü kullandı. OCaml’ın GC’si her durumda daha hızlıydı. C ++ ve OCaml programları kasıtlı olarak aynı tahsisleri aynı sıraya göre yapmak için yazılmıştır.
Elbette, problemi çözmek için programları yalnızca 64-bit tam sayılarla ve ayırmalar olmadan yeniden yazabilirsiniz. Her ne kadar daha hızlı olsa da, bu alıştırmanın amacını yenecektir (ki bu yeni bir GC algoritmasının performansını öngörecekti. C ++ 'da yerleşik bir prototip kullanarak çalışıyordum).
Sektörde yıllardır gerçek C ++ kodunu yönetilen dillere taşımakla geçirdim. Neredeyse her vakada, çoğu muhtemelen GC trumping manuel bellek yönetiminden dolayı önemli performans iyileştirmeleri gözlemledim. Pratik sınırlama, bir mikro Benchmark'ta neler yapılabileceği değil, bir son teslim tarihinden önce neler yapılabileceği ve GC-merkezli diller, asla geriye bakmadığım kadar büyük verimlilik geliştirmeleri sunuyor. Hala gömülü cihazlarda (mikrodenetleyiciler) C ve C ++ kullanıyorum ama bu şimdi bile değişiyor.