Custom memory management
We have come a long way in this chapter now. We have covered the basics of virtual memory, the stack and the heap, the new
and delete
expressions, memory ownership, and alignment and padding. But before we close this chapter, we are going to show how to customize memory management in C++. We will see how the parts that we went through earlier in this chapter will come in handy when writing a custom memory allocator.
But first, what is a custom memory manager and why do we need one?
When using new
or malloc()
to allocate memory, we use the built-in memory management system in C++. Most implementations of operator new
use malloc()
, which is a general-purpose memory allocator. Designing and building a general-purpose memory manager is a complicated task, and there are many people who have already spent a lot of time researching this topic. Still, there are several reasons why you might want to write a custom memory manager. Here are some examples...