Share memory allocations
You're not really supposed to allocate new memory each time you need to create a buffer (in fact, you're really supposed to share buffers as much as possible). There's a limit on how many memory allocations you can make, and it's costly to make a memory allocation. This would involve a change to the memory manager class.