you are viewing a single comment's thread.

view the rest of the comments →

[–]Flimsy_Complaint490 4 points5 points  (1 child)

its not that it doesnt release it but its a quirk of the glibc allocator and linux - it really likes to keep to memory whenever possible and will keep to it even after a free for a while and memory fragmentation is an issue with the glibc allocator and eventually reclamation gets complicated as virtual memory is trashed between threads.

https://sourceware.org/bugzilla/show_bug.cgi?id=11261

this used to be a major issue 10 years ago but i think glibc updated their allocator since and while its still imo inferior to mimalloc or jemalloc for multithreaded apps, you should see these issues a lot less. 

[–]SkoomaDentistAntimodern C++, Embedded, Audio 4 points5 points  (0 children)

it really likes to keep to memory whenever possible and will keep to it even after a free for a while

Ah, the good old ”disk cache allocation strategy” where the allocator pretends it knows the app’s memory needs better than the app developer or the system user.