I'm a little rusty, but to look at this from a general perspective.

If you are creating and killing stuff like there is no tomorrow, from the perspective of a list or array of some sort, why not just have a static array that exceeds what you need and zero out one when it becomes available and use it when you need it.

I know it requires some more processing on the side to deal with this, but surely it beats resizing the poor thing a billion times per second.