C++ — это не гарантия скорости: как Data-Oriented Design спасает от cache miss
Writing Efficient C++ Code

C++ даёт доступ к железу, но сам по себе не делает код быстрым. Автор объясняет, почему Data-Oriented Design и понимание кэша важнее следования ООП-догмам. Непрерывные структуры данных вроде std::vector выигрывают у разбросанных по памяти объектов с указателями. Простые решения часто оказываются и элегантнее, и производительнее.
Если мы попытаемся выразить как можно более прямо, какие данные программа должна хранить и какие операции над ними выполнять, код будет простым, элегантным, читаемым и эффективным одновременно. Это противоречит популярному мнению, что оптимизация означает усложнение и нечитаемость кода.