|
Boost : |
Subject: Re: [boost] [ boost ] [ Trie ]
From: Cosmin Boaca (boost.cosmin.boaca_at_[hidden])
Date: 2015-03-12 16:33:51
On 12 March 2015 at 21:15, Antony Polukhin <antoshkka_at_[hidden]> wrote:
> O2 and O3 are the main cases. Good performance on O1 and O0 is not
> essential.
>
>
> I've took a look into std::map implementation in GCC 4.8. Helper data in
> node of a map consumes same or bigger amount of memory, as
> intrusive::set_base_hook. std::map holds first node by value (it removes
> memory allocation for maps with size 1, which is a common case in our
> performance tests), that's why we did not get the x2 speedup when moved
> from std::map to intrusive.
>
> Let's apply Ion's recommendations:
>
> set_base_hook <optimize_size<true>, link_mode<normal_link> > as hook
> set<node_type, constant_time_size<false> > as children_type.
>
> and measure the speed at O2.
>
Even with O2 and O3 std::map based container still performs slightly
better. I can give you the results of running the benchmark on my PC.
Cosmin
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk