Content deleted Content added
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. 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 cycles away from the [[processing element]]s, consequently [[locality of reference]] issues dominate performance.
=== Contrast with OOP ===
|