IT-lexikon › Programmering › Strukturell ändring (ECS)

Strukturell ändring (ECS)

Programmering In English → Uppdaterad: 2026-10-25

När en entitets uppsättning komponenter ändras i ett ECS måste dess data flyttas mellan minnesblock — en dyr operation som arkitekturen i övrigt är byggd för att undvika.

I ett arketypbaserat ECS lagras entiteter med exakt samma komponentuppsättning tätt packade tillsammans, vilket är hela poängen: systemen itererar linjärt över minnet utan cachemissar. Men lägger man till eller tar bort en komponent byter entiteten arketyp, och all dess data måste kopieras till ett annat block. Det kallas en strukturell ändring.

Eftersom en sådan flytt invaliderar pekare och index mitt under en pågående iteration får system oftast inte göra dem direkt. Lösningen är en command buffer: ändringarna köas upp och spelas tillbaka vid en synkpunkt mellan systemen. Unitys DOTS, Bevy och Flecs gör alla så. Den som strösslar strukturella ändringar per bildruta äter upp exakt den prestanda ECS var tänkt att ge.

← Tillbaka till lexikonet