[Development] Question about QCoreApplicationData::*_libpaths
Marc Mutz
marc.mutz at kdab.com
Sun Jan 24 04:30:14 CET 2016
On Sunday 24 January 2016 03:01:57 Kevin Kofler wrote:
> Marc Mutz wrote:
> > On Friday 22 January 2016 20:46:54 Marc Mutz wrote:
> >> Which one is faster? On a dual-core, probably QVector. On a 64-core
> >> processor, probably std::vector.
> >
> > Running attached test program (4 cores + 2-fold HT), I get these numbers:
>
> That's already 8 virtual cores. He wrote "on a dual-core". :-)
Not that I didn't post the code, so you could run the benchmark on your
machine, or with numThreads hard-coded to 2...
QVector:
1: 111
2: 100
4: 111
8: 115
16: 139
32: 179
64: 204
128: 337
256: 644
512: 1287
1024: 2611
2048: 5020
4096: 10113
std::vector:
1: 63
2: 63
4: 65
8: 69
16: 119
32: 198
64: 264
128: 375
256: 735
512: 1385
1024: 2719
2048: 5545
4096: 10444
(numThread == 2, same box)
Copying is still not significantly slower than ref-counting, even for 4K
elements.
And yes, this suprises even me, but since it perfectly matches my expecations,
at least qualitatively, I won't spend more time trying to understand this. The
code is there, I took great care to make it fair, now the CoW fanboys can
explain this (or find a bug in the benchmark).
At least it seems as if the allocator has a very fast path for
alloc/dealloc/alloc/dealloc/etc chains of a same-sized memory block.
Thanks,
Marc
--
Marc Mutz <marc.mutz at kdab.com> | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
Tel: +49-30-521325470
KDAB - The Qt Experts
More information about the Development
mailing list