Usually C++ uses linked list to holding free memory chunks, so searching for free chunk is not fast. Especially for small objects. So I decided to optimize allocating of memory using special pool allocator. All small objects in engine have base class, which get and release memory from pool allocator. 3x times optimization for memory allocation (small objects) Look Andrei Alexandrescu Modern C++ Design and in details here</span>