It's called "data-oriented design". Look into the gaming industry, where there's a lot of anti-OOP sentiment. They're primarily coming at it from the standpoint of optimizing memory access for cache lines, but there are side benefits that come from it around reducing memory allocation and usage, and avoiding the cost of abstractions that come with hidden inefficiencies.