Memory Managers A memory manager is a software library that performs memory allocation and de-allocation on behalf of a program. Every programming language comes with a runtime environment that includes at least one memory manager. Because these languages are often general-purpose, their memory managers are also general purpose - they cannot assume a lot about patterns of allocations, sizes of allocated chunks, etc. Thus, there are allocation patterns that make the memory manager use the CPU a lot and waste a lot of memory for its book-keeping. Thus, knowing how your memory manager works is important.