|
Boost : |
Subject: Re: [boost] Final benchmark graphs for Colony vs std:: containers now available
From: degski (degski_at_[hidden])
Date: 2016-05-10 00:57:29
On 10 May 2016 at 02:01, Soul Studios <matt_at_[hidden]> wrote:
> Actually tbb concurrent_vector doesn't allow erasures other than clear(),
> so it wouldn't be suitable for comparisons in the situations where you'd
> use a colony. Interesting structure though.
>
You're obviously right.
> ...you can have mutexes on individual blocks rather than the whole thing.
> Also some reads and writes can occur at the same time.
>
Is there currently in your implementation a way to know to which block an
item belongs to (or to get the size of its block, which I guess comes down
to the same), i.e. to know which mutex should be considered. If not, could
that be a future feature?
> Yes, I noticed the MSVC deque performance results were weak, that's a
> pretty extraordinarily bad implementation! Wow.
>
I would think it's historical and hasn't been changed since the beginning
of M$-time to preserve binary-backward-compatibility (which from what I was
made to understand a change of chunk-size entails).
It's a shame actually that the chunk-size is not user-settable (as per the
standard from what I understand) for a std::deque or boost::deque, the
latter with a chunk size of 512b last time I looked. I always use the boost
one... maybe on Windows (with VC) you should test against the boost::deque
instead, in order to get some sensible data...
I see your implementation gives control over the first block on
construction (and the rest then follows the growth policy), NICE! I like it!
degski
-- (\___/) (+'.'+) (")_(") This is Bunny. Copy and paste Bunny into your signature to help him gain world domination!
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk