Data-oriented design

In computing, data-oriented design is a program optimization approach motivated by efficient usage of the CPU cache, often used in video game development.[1] The approach is to focus on the data layout, separating and sorting fields according to when they are needed, and to think about transformations of data. Proponents include Mike Acton,[2] Scott Meyers,[3] and Jonathan Blow.

The parallel array (or structure of arrays) is the main example of data-oriented design. It is contrasted with the array of structures typical of object-oriented designs.

The definition of data-oriented design as a programming paradigm can be seen as contentious as many believe that it can be used side by side with another paradigm,[4] but due to the emphasis on data layout, it is also incompatible with most other paradigms. [1]

  1. ^ a b Llopis, Noel (December 4, 2009). "Data-oriented design". Data-Oriented Design (Or Why You Might Be Shooting Yourself in The Foot With OOP). Retrieved April 17, 2020.
  2. ^ "CppCon 2014: Mike Acton "Data-Oriented Design and C++"". YouTube. 29 September 2014.
  3. ^ "code::dive conference 2014 - Scott Meyers: Cpu Caches and Why You Care". YouTube. 5 January 2015.
  4. ^ Richard Fabian (October 8, 2018). "Data-Oriented Design". www.dataorienteddesign.com. Retrieved 2023-12-20.