In computing, data-oriented design is a program optimization approach motivated by efficient usage of the CPU cache, often used in video game development.
Historically, game consoles often have relatively weak central processing units (CPUs) compared to the top-of-line desktop computer counterparts.
In addition, most types of computing systems have main memory located hundreds of clock cycles away from the processing elements.
Consequently, locality of reference methods have been used to control performance, requiring improvement of memory access patterns to fix bottlenecking.
The claim is that traditional object-oriented programming (OOP) design principles result in poor data locality,[5][6] more so if runtime polymorphism (dynamic dispatch) is used (which is especially problematic on some processors).