Modern software often faces increasing demands on performance, especially in domains such as gaming, real-time systems, and data processing. Traditional Object-Oriented Design (OOD) frequently introduces performance limitations due to suboptimal data locality and excessive branching, hindering efficient use of modern CPU architectures. This thesis investigates the performance impacts of alternative programming paradigms, particularly Data-Oriented Design (DOD), through empirical testing. Two main hypotheses were explored: first, that DOD-style implementations reduce execution time and branch mispredictions compared to OOD-based polymorphism; and second, that memory layouts optimized for cache efficiency in DOD outperform traditional layouts used in OOD. A series of experiments were designed to test control flow and memory layout scenarios. Results showed that DOD approaches, particularly through existential processing and struct-of-arrays (SoA) layouts, yielded significant improvements in execution time and reduced hardware-level inefficiencies such as cache misses and branch mispredictions. These findings support the argument that architecting software to optimize for the hardware can produce measurable performance benefits, and suggest that DOD principles should be more widely considered in performance-critical software development.
Det finns övrigt digitalt material (t.ex. film-, bild- eller ljudfiler) eller modeller/artefakter tillhörande examensarbetet som ska skickas till arkivet.
There are other digital material (eg film, image or audio files) or models/artifacts that belongs to the thesis and need to be archived.