Data-oriented design is an approach to producing high-performance software by focusing on the mechanics of how data is stored and manipulated in the program. Some of its core ideas are:
- Preferring operating on large arrays of data all at once instead of on singletons/objects
- Normalizing your data
- "Structs of arrays" instead of "Arrays of structs" - representing a collection of entities as a separate array for each field, so that you only have to load the memory pertinent to the current operation into the cache.