Ich hab nun schon 2x diesen Talk gesehen
und daher auch mal probiert "data oriented design", wie es hier heißt, in C++ zu benchmarken.
Auf meinem GamingPC und aufm Laptop war kein Unterschied messbar. Dh klassisches OOP mit >1MB fetten Objekten vs 'alles relevante in einem seperatem std::vector' war exakt gleich schnell. Egal ob -march-native, -O2, -O3, -Os usw.
Wahrscheinlich hat die
https://de.wikipedia.org/wiki/Memory_Management_Unit und prefetching einfach perfekt funktioniert.
Ich halte es daher genau wie auch auf stackoverflow immer steht: Messen, messen, messen.
Nur weil man denkt etwas wäre langsam oder weil man denkt, "anders als sauber programmiert ist bestimmt schneller!!!11" sollte man es nicht ohne Grund tun. Und einen Grund liefert nur eine representative Messung.