Pracuję nad poprawą wydajności programu, który korzysta z biblioteki Boost Graph Library i boost::bimap
. Profilowanie ujawniło, że większość czasu spędzano na alokacji pamięci i dezalokacji. Wykonanie klasy adjacency_list
biblioteki wykresów znacznie zwiększa wydajność. Znaczna część pozostałych alokacji pamięci występuje w boost::bimap
, więc chciałem także eksperymentować z wykorzystaniem niestandardowego alokatora. documentation mówi, że można określić alokator jako ostatni parametr szablonu bimap, ale nie określa, jaki typ powinien być argument szablonu dla samego przydzielającego. Na przykład, dla typów X
i Y
, wUżyj niestandardowego przydziału z boost :: bimap
boost::bimap<set_of<X>, set_of<Y>, boost::fast_pool_allocator<Z> >
co powinno być wypełnione dla Z
?
Zdecydowanie nie zalecałbym stosowania boost: bimap. Używanie kontenera z wieloma wskaźnikami z dwoma indeksami bezpośrednio jest o wiele jaśniejsze niż kod używający bimap. – James
@Autopulated: Dziękuję - rozważę alternatywę następnym razem, gdybym inaczej spróbował bimap. –