0
我有大量的鍵/值對,說二千萬,到 插入到dense_hash_map。我注意到在插入過程中發生了重新分配 的幾次,並且內存分配的峯值比所需的值高出一倍。 爲了減少 重新分配的總次數並獲得更多效率,我是 考慮了預分配。谷歌dense_hash_map調整大小預先分配不起作用
所以我寫了:
dense_hash_map<k, v> m;
m.resize(20000000);
m.set_empty_key(0);
m.set_deleted_key(-1);
做預分配,並set_empty_key後,我在記憶看見一個大 700MBytes分配,到目前爲止,一切順利。
但是,後最初幾個(比如4〜5)插入/擦除的呼叫,大存儲器 塊將被釋放,並且dense_hash_map重複所述重新分配 直到1.2GBytes(峯值是2.3GBytes)。
我該怎麼做?
使用'dense_hash_map(20000000)'來代替 –
@RedAlert它是相同的意思。 – amanjiang