Cachevriendelijkheid
Cachevriendelijkheid verwijst naar de mate waarin software de CPU-cache van een computer effectief benut. Moderne processors hebben een hiërarchie van caches (L1, L2, L3). Data die in de cache zit, kan sneller worden verwerkt dan data uit hoofdgeheugen, waardoor de prestaties aanzienlijk kunnen verbeteren. Het doel is het aantal cache misses te beperken en daarmee de gemiddelde toegangstijd tot geheugen te verlagen.
Een kernconcept is locality of reference, bestaande uit temporele en ruimtelijke lokaliteit. Tijdelijke lokaliteit houdt in
Data-layout en toegangspatronen spelen een belangrijke rol. Een keuze tussen structuur van arrays (SoA) en Array
Technieken om cachevriendelijkheid te verbeteren omvatten blokken of tiling bij grote matrices, herordening van lussen om
Meten en evalueren gebeurt met profilingtools zoals Valgrind Cachegrind, perf of Intel VTune. Deze tools geven