This document summarizes some of the pitfalls of object-oriented programming and provides recommendations to improve performance. It discusses how CPU and memory performance have changed significantly since the development of C++, with memory access now being much slower relative to CPU speed. This can negatively impact object-oriented code that encapsulates both data and behavior, leading to excessive cache misses. The document recommends using a data-oriented design that processes data in a linear, sequential way to optimize for cache usage and minimize misses. It provides an example comparing object and data-oriented approaches to updating and culling a scene graph.