IT-lexicon › Programmeren › Structural change (ECS)

Structural change (ECS)

Programmeren Svenska → Bijgewerkt: 2026-10-25

Wanneer in een ECS de set componenten van een entiteit verandert, moet de data tussen geheugenblokken worden verplaatst — een dure operatie die de architectuur juist wil vermijden.

In een archetype-gebaseerde ECS staan entiteiten met precies dezelfde set componenten compact bij elkaar opgeslagen, en dat is het hele punt: systemen lopen lineair door het geheugen zonder cache misses. Maar voeg een component toe of verwijder er een, en de entiteit wisselt van archetype, waardoor al zijn data naar een ander blok gekopieerd moet worden. Dat is een structural change.

Omdat zo'n verplaatsing pointers en indices ongeldig maakt midden in een lopende iteratie, mogen systemen dit meestal niet rechtstreeks doen. De oplossing is een command buffer: wijzigingen worden in een wachtrij gezet en afgespeeld op een sync point tussen systemen. Unity's DOTS, Bevy en Flecs werken zo. Strooi je elk frame structural changes rond, dan verspeel je precies de prestaties die ECS moest opleveren.

← Terug naar het lexicon