You can select the allocation method used by the standard allocator of the C++ Standard Library to suit the performance needs of the application. For instance, in a non-threaded application you might want to use a pooled allocation strategy for standard allocators. This tends to be faster than the classic allocator for allocating small objects. However, there might be some instances when the classic allocator is preferable, as in the case where an application provides its own fast versions of the operator new() and operator delete() operators. In this case, the pooled allocators might not increase the performance and will incur a greater memory overhead.
#define __IBM_ENABLE_POOLED_ALLOCATORS__ 1
#define __IBM_ENABLE_CLASSIC_ALLOCATORS__ 1
In all applications, threaded and non-threaded, if no macro is specified, the "classic", non-pooled allocators are used by default; they have no effect on performance. In applications that link to libpthreads.a, the "classic", non-pooled allocators are always used, and the macro __IBM_ENABLE_POOLED_ALLOCATORS__ has no effect. Pooled allocators are not thread-safe and are not available in threaded programs.