In computing, data-oriented design (not to be confused with data-driven design) is a program optimization approach motivated by cache coherency, used in video game development (usually in the programming languages C or C++). 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.
These methods became especially popular during the seventh generation of video game consoles that included PlayStation 3 (PS3) and Xbox 360, when the hazards of cache misses became especially pronounced, due to their use of in-order processors with high clock speeds and deep pipelines (some of the software issues were similar to those encountered on the Itanium, requiring loop unrolling for upfront scheduling). In modern systems (even with out of order execution), main memory is as many as hundreds of clock cycles away from the processing elements; consequently locality of reference issues dominate performance, requiring improvement of memory access patterns to fix. Game consoles often have relatively weak central processing units (CPUs) to devote more power and transistor budget to the graphics processing units (GPUs). Thus, it is critical that CPU side code is efficient to avoid Von Neumann bottlenecking.