Poolallocator
Een allocator die een buffer in gelijke blokken verdeelt, in een free list koppelt en ze in willekeurige volgorde in constante tijd uitdeelt.
Wanneer een programma voortdurend even grote objecten aanmaakt en weggooit — kogels, deeltjes, entiteiten — is een algemene heap zowel traag als gevoelig voor fragmentatie. Een poolallocator verdeelt de buffer vooraf in blokken van vaste grootte en rijgt de vrije aan elkaar in een eenvoudige gelinkte lijst. Alloceren is het eerste vrije blok eraf halen; vrijgeven is het er weer vooraan op zetten. Beide zijn O(1).
Omdat alle blokken even groot zijn, kunnen ze in willekeurige volgorde hergebruikt worden zonder gaten achter te laten waar niets in past: fragmentatie verdwijnt door de constructie zelf. Verwar het mechanisme niet met object pooling, dat hetzelfde idee een niveau hoger is: daar hergebruik je afgewerkte spelobjecten, hier ruwe geheugenblokken.