Structure of arrays (SoA)
Un layout di memoria che conserva ogni campo in un proprio array contiguo (x[], y[], z[]) invece di un array di struct complete, per iterazioni adatte alla cache e vettorizzabili.
L'opposto è l'«array of structs» (AoS): {x,y,z}[], dove i campi di ciascun elemento stanno insieme. L'SoA rovescia il criterio: x[], y[], z[] ciascuno per conto proprio. Quando si tocca un solo campo di tutti gli elementi, l'SoA legge solo le cache line necessarie, e array lineari si vettorizzano bene con SIMD. L'AoS spreca invece banda su campi che non servivano.
È il fondamento del data-oriented design e del modo in cui le librerie ECS memorizzano i componenti, spesso come sparse set per tipo. Lo svantaggio: leggere tutti i campi di un singolo elemento disperde gli accessi su più array.