|
Message-ID: <20220921084240.rg7r2img5axurbdg@gen2.localdomain> Date: Wed, 21 Sep 2022 14:42:40 +0600 From: NRK <nrk@...root.org> To: musl@...ts.openwall.com Subject: Re: The heap memory performance (malloc/free/realloc) is significantly degraded in musl 1.2 (compared to 1.1) On Wed, Sep 21, 2022 at 04:45:59AM +0800, baiyang wrote: > Yes, we will adapt as many allocators as possible to make our software > more portable and adaptable. > > Of course, we also respect and understand the author's considerations > and trade-offs, and have avoided calling malloc_usable_size for musl's > mallocng in our software. Here's a better idea, malloc (and malloc_usable_size) cannot be slow if you never call it; so just skip it all together and grab the needed pages straight from the kernel (mmap(2) on linux/posix and on windows I think it's VirtualAlloc). The malloc API was designed for ease of use, not performance. And it's evident from the fact that user has no control over malloc's metadata. And what you're doing with malloc_usable_size() is not an "optimization", it's a heuristic at best and hack that'll actually *pessimize* at worse. Proof? This very thread. Also malloc_usable_size() does not tell you anything about weather realloc will grow in place (or avoid copy entirely via virtual address space shenanigans). If you need such fine grained control then you're using the wrong API, you either need to manage your memory directly or find an allocator library which *actually* (as in documented in the API contract) offers such control rather than relying on unreliable heuristics. - NRK
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.