Comments (3)
Thanks! Overriding the C++ operators is never necessary as they use malloc/free under the hood. Currently we only override them when compiling with a C++ compiler and only on macOS/Unix systems. The dynamic overriding on Windows is also still in flux so we disable it for now -- we might enable it again in the future for performance reasons.
from mimalloc.
Overriding the C++ operators is never necessary as they use malloc/free under the hood
As discussed in #26, there is no such guarantee. Assuming new
invokes malloc
is relying on implementation-specific behavior within the standard library.
Even where it does... why would I want the align_val_t
overloads of new
to invoke malloc
(and be forced to over-allocate and align within the block) rather than invoking an appropriate alignment-aware allocation entry point in the allocator?
from mimalloc.
I agree Sean. I just pushed an update to the C++ overriding on Linux/BSD which is more complete and added the sized deletes on Windows. On windows there is still the #if 0
since we are actively working on an improved version. You can use #if 1
if you like -- it is as yet disabled since we observed problems on some (large) programs and it needs more investigation; for most programs it should be fine though :-)
from mimalloc.
Related Issues (20)
- Mimalloc attempts to allocate 33 MB shortly after thread start, prints spurious warning when it fails
- Any way to know how much memory was freed but not yet purged?
- The performance of mimalloc is unexpectedly lower than that of the system's built-in allocator. HOT 3
- Use MADV_FREE in FreeBSD HOT 3
- mimalloc.cmake has hard-coded paths
- Shutdown issues using heap bound to arena, `mi_collect`
- What interface is redirected _expand_base
- mi_malloc didn't return NULL while no memory available
- Multiple debug print statements and hugepages mapped HOT 1
- When will release the next version?
- Why is `mimalloc-redirect` closed-source? HOT 1
- Unused variable from heap alloc code
- Crash on start on OSX with v2.0.9 HOT 1
- "mimalloc-obj" is not in any export set
- alloc-override.c uses wrong type for std::nothrow_t argument in C++ operator new overrides
- Allocate from heap from different threads HOT 3
- Mimalloc detects wrong libatomic for static linking
- Windows Server 2019 kernel CPU time
- ASAN crash in `mi_checked_ptr_segment` when freeing memory from `abi::__cxa_demangle`
- Crash on Linux when using miamlloc v2.1.2 with dynamic override
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.