Structure of arrays (SoA)
Een geheugenindeling waarbij elk veld in een eigen aaneengesloten array staat (x[], y[], z[]) in plaats van een array van hele structs, voor cachevriendelijke en vectoriseerbare iteratie.
Het tegendeel is de ‘array of structs’ (AoS): {x,y,z}[], waarbij de velden van elk element bij elkaar liggen. SoA keert dat binnenstebuiten: x[], y[] en z[] elk apart. Raak je over alle elementen slechts één veld aan, dan leest SoA alleen de cachelijnen die nodig zijn, en gewone arrays laten zich netjes vectoriseren met SIMD. AoS verspilt juist bandbreedte aan velden die je nooit bekeek.
Het is de ruggengraat van data-oriented design en van de manier waarop ECS-bibliotheken componenten opslaan, vaak als sparse set per type. Het nadeel: alle velden van één element ophalen verspreidt de leesacties over meerdere arrays.