Bazı hızlı, iş parçacığı güvenli bellek havuzu kitaplığına ihtiyacım var. Çok fazla uğraştım, ancak hızlı çözümler iplik güvenliğini korurken, diğerleri gerçekten büyük.C: bellek havuzu kitaplığı?
Herhangi bir öneriniz var mı?
Bazı hızlı, iş parçacığı güvenli bellek havuzu kitaplığına ihtiyacım var. Çok fazla uğraştım, ancak hızlı çözümler iplik güvenliğini korurken, diğerleri gerçekten büyük.C: bellek havuzu kitaplığı?
Herhangi bir öneriniz var mı?
Hem nedmalloc ve ptmalloc bakınız Doug LEA malloc (en Linux ayırıcılarına çekirdek) çevresinde göre Cı göre iplik önbelleğe alma bellek yöneticileri vardır. Hem ticari kullanım için ödeme gerektiren, hem de son baktığım gibi, iyi bir lisans altındalar. Googles tcmalloc ayrıca C bindings iirc'e sahiptir ve bir yığın önbelleğe alma ayırıcısı olarak temelden inşa edilmiştir, ayrıca bazılarında yığın ve cpu profil oluşturma araçlarında yerleşik olarak bulunur, ancak büyük bellek kullanımı için oluşturulur (örnek verdikleri örnek başına 300 mb'dir), ve bu kadar çok küçük ölçekli uygulamalar için beklendiği gibi işe yaramıyor
teşekkür ederim! nedmalloc tam olarak aradığım şey. – Daniel
iyi çalışıyor ve bu kadar büyük olmamalı.
Ben ilk yaklaşım olarak apr denedim ve gerçekten büyük + kullanacağım çok fazla api var. – Daniel
Her iş parçacığı için bir bellek havuzu kullanmanız gerekir.
Not: Bu yardımcı olsa da, dikkat edilmesi gereken bir çok konu da vardır - belirli bir iş parçacığından belirli bir havuza yönlendirilebildiğinden emin olabilirsiniz, ancak herhangi bir havuzdan herhangi bir bloğu serbest bırakmak için hazırlıklı olmanız gerekir. iplik. –
Neden her iş parçacığı için ayrı bellek havuzları kullanmalıyım? – Daniel
Bu, aynı zamanda, serbest mağazasında yüzlerce mega hafızayı ayırabilen bir arenaya da yol açabilir, bu da aslında – Necrolis
Neden sadece malloc()? Çok mu yavaş? İş parçacığı havuzunu denedin mi? Daha hızlı, ama biraz hafıza harcıyor. –
Küçük parçalar (<500b) ile saniyede malloc/free hundrends var, yani evet, sadece ücretsiz/malloc gerçekten yavaş. Ben de iş parçacığı havuzu yönetimi hakkında baş ağrısı olmayacak bazı iplik güvenli çözüm almak istiyorum. – Daniel
Ayrıca arena bellek yönetimi düşünün. Eğer sizin için uygunsa çok daha hızlı olacaktır. – Joshua