Wie beeinflussen Cache Misses die Art, wie du Daten anordnest?
Ein Miss auf den Hauptspeicher kostet in der Größenordnung von ein paar hundert Zyklen, sodass eine theoretisch bessere Datenstruktur klar gegen ein zusammenhängendes Array verlieren kann. Das führt dazu, Daten so anzuordnen, wie sie durchlaufen werden – Structure-of-Arrays, wenn man ein Feld über viele Objekte hinweg anfasst, heiße Felder eng zusammenpacken und Pointer-Chasing in der inneren Schleife vermeiden. False Sharing ist dasselbe Problem umgekehrt: Zwei Threads schreiben in unterschiedliche Variablen derselben Cache-Line und serialisieren sich dadurch gegenseitig, die Lösung ist Padding auf Cache-Line-Größe.