Object pooling
Reusing a pre-allocated set of objects instead of constantly creating and discarding them, to avoid allocation cost and GC pauses.
Games spawn and destroy heaps of short-lived objects — bullets, particles, enemies, damage numbers. Allocating each on the heap costs time and fragments memory, and in garbage-collected languages a collection cycle can pause the whole frame and cause visible stutter. An object pool allocates a batch up front, hands out free instances, and "destroys" them by simply marking them free again.
The pattern is described as "Object Pool" in Robert Nystrom's Game Programming Patterns and is all but mandatory in Unity projects. The cost is that the pool's maximum size has to be guessed, objects must be reset carefully on reuse, and a leaked instance never comes back. It goes hand in hand with how an ECS packs data tightly for cache friendliness.