Comments (4)
The results are a bit hard to read, if I reformat, I get:
(std)malloc mimalloc
test vector pector pector
----------------------------------------------
/64/8192 844ns 860ns 434ns
/2048/8192/ 3277ns 2767ns 1077ns
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
from mimalloc.
@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 vc-19.21
is at optimizing its own STL, and how much better clang-cl-9.0
is at it [it's all the same STL, literally the same code being compiled (apart from built_ins in clang/llvm
of course)]. Furthermore, the absolute best combination is VS2019 + pt::pector + mimalloc
, while the worst is VS2019 + std::vector
.
PS: I've updated the pt::pector
readme to include pt::mimalloc_allocator
with a reference to and a few lines related to mimalloc
(and where to find it).
from mimalloc.
@daanx I've looked a the vc
results (with std::vector
) and it appears optimization could better with /GL
(link time code generation) and I have updated the relevant figures. The conclusions still stand, it just corrects (for the better, the result of vc
).
(std) malloc mimalloc
test vector pector pector
----------------------------------------------
/64/8192 871ns 860ns 434ns
/2048/8192 2570ns 2001ns 1077ns
The figure in your overview for malloc-backed pt::pector
2048, reported the figure for 4096.
from mimalloc.
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 pector
in the mimalloc-bench repository :-)
from mimalloc.
Related Issues (20)
- `unix/prim.c` uses deprecated Apple `TARGET_` symbols HOT 1
- Patching a 32-bit image with `minject` doesn't tell you to use `minject32`. HOT 1
- Segment check range exceeds 40TB for asan builds HOT 1
- Test 'malloc-nomem1' failure on 32-bit architectures after v2.1.4 HOT 1
- 2.1.4 Failure build for ppc64le error: โ__builtin_thread_pointerโ is not supported on this target HOT 12
- 2.1.4 and error mingw/msys2 HOT 4
- 2.1.4: build fail on centos7 HOT 7
- CMake install with namespace and add corresponding alias targets HOT 2
- Rss memory usage increase in version 2.1.4 HOT 2
- Add dllhook mode HOT 1
- oversize allocation in mi_heap_malloc_zero_aligned_at HOT 6
- Concurrency bugs that cause hanging HOT 2
- Intermittent VirtualAlloc failure while the pagefile is growing HOT 1
- Tests fail on armhf and armv7 on Alpine Linux (musl libc) since mimalloc 2.1.4 & 1.8.4 HOT 4
- [suggestion] add a comment at the declaration of `mi_arena_t` for easier custom modify HOT 1
- Can't compile v2.1.6 tag on Ubuntu 22.04.LTS HOT 3
- malloc_good_size in overrides HOT 13
- Is it ok that `ld-linux-x86-64.so.2` `Scrt1.o` `crti.o` and `crtbeginS.o` is located before `mimalloc.o` in the linker commandline when static override malloc? HOT 1
- Inconsistent output naming of `mimalloc.dll` HOT 3
- 2.1.4: crash in mi_segment_try_purge during mi_process_done HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mimalloc.