Prestatiemeting en profiling
Wanneer de arraygrootte stapsgewijs wordt vergroot en de tijd per element wordt gemeten van een bewerking die de array herhaaldelijk leest, neemt de tijd bij bepaalde groottes trapsgewijs toe. Wat is de juiste verklaring?
- AOmdat de CPU-frequentie altijd daalt naarmate de array groter wordt
- BOmdat telkens wanneer de array de capaciteit van de L1-, L2- en L3-cache achtereenvolgens overschrijdt, de gegevens uit een langzamer geheugen worden gelezen
- COmdat het resultaat van een optelling verandert met de arraygrootte
Antwoord en toelichting tonen
Antwoord: B. Omdat telkens wanneer de array de capaciteit van de L1-, L2- en L3-cache achtereenvolgens overschrijdt, de gegevens uit een langzamer geheugen worden gelezen
Zolang de array klein is, past hij in de L1-cache en kan hij snel worden gelezen; boven de L1-capaciteit wordt uit L2 gelezen, en boven L2 of L3 uit het hoofdgeheugen, waarbij telkens de tijd per element trapsgewijs toeneemt. Met deze meetmethode kunnen de capaciteit en de snelheid van elke cache bij benadering worden onderzocht. Ook wordt duidelijk waarom het van groot belang is voor de prestaties dat de gegevens die een programma herhaaldelijk gebruikt (de working set) in de cache passen.