Object pooling
Also said as Object pool, Free list, Garbage collection spikes
Keeping a stock of finished objects, such as bullets, and reusing them rather than creating new ones and throwing old ones away.
In languages with a garbage collector, thousands of throwaway objects eventually force a cleanup, and it can stop the game for a visible moment. A pool makes that stop unnecessary.
Say it
“Bullets stutter the frame every few seconds. Pool them: allocate 500 at the start of the level, reuse them, and make sure a reused bullet resets every field.”
Where you’ve seen it
Robert Nystrom's book Game Programming Patterns gives this a chapter of its own, with a particle system as its example.
Not to be confused with caching
A cache keeps a result so you need not work it out again. A pool keeps an empty object so you need not allocate it again.