Asignador de pool
Un asignador que divide un búfer en bloques iguales enlazados en una lista de libres y los entrega en cualquier orden en tiempo constante.
Cuando un programa crea y destruye constantemente objetos del mismo tamaño —balas, partículas, entidades— un heap de propósito general es lento y propenso a la fragmentación. Un asignador de pool divide de antemano el búfer en bloques de tamaño fijo y enhebra los libres en una lista enlazada simple. Asignar es sacar el primer bloque libre; liberar es devolverlo al frente. Ambos son O(1).
Como todos los bloques tienen el mismo tamaño, se pueden reutilizar en cualquier orden sin dejar huecos en los que nada quepa: la fragmentación desaparece por construcción. No confundas el mecanismo con el pool de objetos, que es la misma idea un nivel más arriba: allí se reutilizan objetos de juego terminados, aquí se reutilizan bloques de memoria en bruto.