3 ms·
The memory layout can be better this way depending on how the fields of a strict are laid out. It also gives the data better locality. Let's say you're iterati
by marcinjachymiak 4y ago
The memory layout can be better this way depending on how the fields of a strict are laid out. It also gives the data better locality.
Let's say you're iterating over position coordinates of some set of objects in a game. With an array-of-structs you can lose ou on cache locality if unrelated fields are nearby. If you use a struct-of-arrays you get cache locality advantages anytime you do something like "iterate over this 1 field for each object"
The latter approach is called data oriented programming btw, and seems to have been around for a while. Andrew Kelley gave a good talk about it recently while using Zig: https://media.handmade-seattle.com/practical-data-oriented-design/ https://media.handmade-seattle.com/practical-data-oriented-d...