Hem Yükseltme Grafiği Kitaplığı'nı hem de boost::bimap
'u kullanan bir programın performansını geliştirmek için çalışıyorum. Profilleme, çoğu zaman bellek ayırma ve ayrılma işleminde harcanıyordu. Grafik kitaplığının adjacency_list
sınıfını kullanması, boost::fast_pool_allocator
performansını önemli ölçüde artırmıştır. Kalan bellek ayırmalarının büyük bir kısmı boost::bimap
'da ortaya çıkıyor, bu yüzden orada özel bir ayırıcı kullanarak denemek istedim. documentation, alamatörü bimap'ın son şablon parametresi olarak belirtebileceğinizi, ancak ayırıcının şablon argümanının hangi türünün olması gerektiğini söylemediğini belirtir. Örneğin,Destekle özel bir ayırıcı kullanın :: bimap
X
ve
Y
için
boost::bimap<set_of<X>, set_of<Y>, boost::fast_pool_allocator<Z> >
Z
için doldurulacaktır gereken
?
Güçlendirme kullanmanızı şiddetle tavsiye ederim: bimap. Doğrudan iki endeksli bir çok-endeksli konteynerin kullanılması, bir bimap kullanan koddan çok daha nettir. – James
@Autopulated: Teşekkürler - Bir dahaki sefere alternatif olarak bimap deneyeceğim. –