-
Notifications
You must be signed in to change notification settings - Fork 853
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added support for mimalloc to pt::pector #60
Comments
The results are a bit hard to read, if I reformat, I get:
Wow! that are big improvements :-) Thank you for sharing this -- I will try to include this in the mimalloc-bench project as a benchmark. Thanks again, -- always interested in benchmark results |
@daanx I'm a bit pissed off, though! ;-) Because, this podder project (of which the benchmark is part) has become virtually obsolete in one fell swoop. I'll have to file it under 'learning experience' now. Another interesting observation is to see how bad PS: I've updated the |
@daanx I've looked a the
The figure in your overview for malloc-backed |
Thanks so much for including a reference to mimalloc! And thanks for spotting the mistake and giving the updated times -- still amazing to see such difference. I am planning to include |
I've added support for
mimalloc
topt::pector
.pt::pector
is a 'better' std::vector (not always) written by Adrien Guinet, who has dropped of the radar, I hope he's doing well. So I have forked that project and I'm doing some minor maintenance. Its license is LGPL (but header only, so I don't really know what that means).pt::pector
intends to be a betterstd::vector
. To that purpose (a.o.) apt::malloc_allocator
was added topt::pector
, in order to benefit fromstd::realloc
. This allowed formarginalimprovements overstd::vector
. Now I've added apt::mimalloc_allocator
, so, same thing, just replacedstd::malloc
and friends withmi_malloc
and its girl-friends. This has had a dramatic change in the resulting benchmark numbers.What I'm doing in the bench-marking is to emplace_back() on a vector of vector-type containers, randomly selected and of random length within a range. The ranges are then iteratively increased and the length of the vectors increases as well. It sounds more complicated than it is, the code is here.
I'm testing this both with VS2019 and with Clang/LLVM-9.0 (trunk) on Windows 10-1903 x64, Intel Ci3 5005U. For VC with LTCG and for Clang with Thin LTO.
Results for VS2019:
And with Clang the results are [very different, but still putting
mipector
(the one backed bymimalloc
) in the lead]:Just sharing, time for a better vector has never looked better than now! Thanks for this great allocator.
The text was updated successfully, but these errors were encountered: