Data-oriented design: Difference between revisions

Content deleted Content added
BG19bot (talk | contribs)
m WP:CHECKWIKI error fix for #03. Missing Reflist. Do general fixes if a problem exists. -
No edit summary
Line 1:
In [[computing]], '''Data oriented design''' (not to be confused with [[data-driven design]]) is a software optimisation approach motivated by [[cache coherency]], used in [[video game]] development (usually in the [[C programming language|C]] or [[C++ programming language]]s).
<ref>{{cite web|title = data oriented design|url=http://www.dice.se/wp-content/uploads/2014/12/Introduction_to_Data-Oriented_Design.pdf}}</ref>
The approach is to focus on the data layout, separating and sorting [[field (computing)|field]]s according to when they are needed, and to think about transformations of data. Proponents include [[Mike Acton]].
 
== Motivation ==
 
These techniques became especially popular during the [[PS3]] and [[xbox 360]] console generation when the hazards of [[cache misses]] became especially pronounced, due to their use of [[in-order processor]]s and high clock speeds.<ref>{{cite web|title = data oriented design|url=http://www.dice.se/wp-content/uploads/2014/12/Introduction_to_Data-Oriented_Design.pdf}}</ref> In modern systems (even with [[out of order execution]], [[main memory]] is as many as hundreds of [[clock cycle]]s away from the [[processing element]]s, consequently [[locality of reference]] issues dominate performance.
 
== Contrast with OOP ==