Boost logo

Boost Users :

Subject: Re: [Boost-users] Memory usage of boost::unordered_multimap and boost::unordered_multimap
From: Daniel James (dnljms_at_[hidden])
Date: 2017-10-06 11:49:45

On 6 October 2017 at 11:41, Joaquin M López Muñoz via Boost-users
<boost-users_at_[hidden]> wrote:
> El 06/10/2017 a las 12:16, Ram via Boost-users escribió:
>> Hi,
>> I need help in determining the amount of memory used by
>> boost::unordered_multimap and boost::unordered_multimap.
> From a theoretical point of view, this might help:

The implementation has changed recently, C++17 requires that
unordered_map and unordered_multimap use the same nodes, so now the
unordered_multimap nodes are a little smaller, and a bit slower when
there are a lot of elements with equivalent keys as it has to iterate
through them one by one. I also now store the bucket index in nodes
instead of the hash value.

The container still allocates an array of (bucket_count + 1) buckets,
and each node consists of the value, a std::size_t, and a pointer, and
also whatever housekeeping is required for memory management. This can
be quite costly compared to storing values in an array.

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at