我正在改進使用Boost Graph Library和boost::bimap
的程序的性能。分析顯示,大部分時間都花費在內存分配和重新分配上。使圖庫的adjacency_list
類使用boost::fast_pool_allocator
顯着提高了性能。剩下的大量內存分配發生在boost::bimap
,所以我想試試在那裏使用自定義分配器。 documentation說你可以指定分配器作爲bimap的最後一個模板參數,但是它沒有說明分配器本身的模板參數應該是什麼類型。例如,對於類型X
和Y
,在在boost :: bimap中使用自定義分配器
boost::bimap<set_of<X>, set_of<Y>, boost::fast_pool_allocator<Z> >
什麼應該Z
填寫?
我強烈建議不要使用boost:bimap。直接使用帶兩個索引的boost多索引容器比使用bimap的代碼更清晰。 – James
@Autopulated:謝謝 - 下次我會考慮這個選擇,否則我會試試bimap。 –