Birbirine eşzamansız olarak veri mesajları göndererek iletişim kuran iki iş parçacığı olduğunu varsayalım. Her iş parçacığının bir tür mesaj kuyruğu vardır.
Sorum çok düşük: Hafızayı yönetmenin en etkili yolu ne olabilir? Birkaç çözüm düşünebilirim:
- Gönderen, nesneyi üzerinden oluşturur
new
. Alıcı aramalarıdelete
. - Bellek havuzu oluşturma (belleği gönderene geri aktarmak için)
- Çöp toplama (ör. Boehm GC)
- (nesneler yeterince küçükse) yığın tahsisini tamamen önlemek için değere göre kopyalayın
1) en belirgin çözüm, bu yüzden onu bir prototip için kullanacağım. Şansı zaten yeterince iyi olması. Ancak özel sorunumdan bağımsız olarak, performansı optimize ediyorsanız hangi tekniğin en umut verici olduğunu merak ediyorum.
Özellikle iş parçacıkları arasındaki bilgi akışı hakkında ek bilgi kullanabileceğiniz için, havuzlamanın teorik olarak en iyi olmasını beklerim. Ancak, doğru olmanın en zor yolu olduğundan korkuyorum. Bir sürü ayar ... :-(
Çöp toplama işleminden sonra (çözüm 1'den sonra) eklemek oldukça kolay olmalı ve çok iyi performans göstermesini beklerdim. Yani, sanırım 1) çok verimsiz olursa en pratik çözüm budur.
Nesneler küçük ve basitse, değere göre kopyala en hızlısı olabilir. Ancak, desteklenen mesajların uygulanmasında gereksiz sınırlamalar getirmesinden korkuyorum, bu yüzden bundan kaçınmak istiyorum.