Some people write custom memory allocators to meet their speci?c needs. Although this is not needed for most of the applications, it is also not uncommon. The goal, of course, is to replace the OS allocator in an optimized version that deals more ef?ciently with the most frequently used data structures of some given application. Ideally, we expect the new allocator to require reduced runtime, provide expanded functionality (sometimes) and run on reduced space (rarely). Examples of applications that use custom allocators are the Apache webserver, GCC, the STL and most database servers. Unfortunately, there are also some drawbacks regarding the use of custommemory allocators, such as the increased burden on programmers, as well as the fact that they seldom allow the use of standard memory debuggers.