Prestatiemeting en profiling
Waarom wordt bij het meten van de uitvoeringstijd van een programma dezelfde meting vaak vele malen herhaald en worden de eerste resultaten weggelaten?
- AOmdat de rekenresultaten van de eerste paar keer altijd onjuist zijn
- BOmdat het de eerste keren langzamer is doordat de cache leeg is en bestanden worden ingelezen of tijdens de uitvoering wordt gecompileerd, en omdat de metingen ook variëren
- COmdat de CPU bij herhaalde metingen een circuit bouwt dat hem sneller maakt
Antwoord en toelichting tonen
Antwoord: B. Omdat het de eerste keren langzamer is doordat de cache leeg is en bestanden worden ingelezen of tijdens de uitvoering wordt gecompileerd, en omdat de metingen ook variëren
Bij de eerste uitvoering beginnen cache, TLB en sprongvoorspeller in een lege toestand, moeten bestanden van schijf worden gelezen omdat ze niet in de cache van het besturingssysteem staan, en vindt bij talen met een JIT-compiler ook de omzetting naar machinecode plaats. Daardoor zijn de eerste uitvoeringen langzamer. Verder variëren metingen door andere programma’s, interrupts en frequentieveranderingen als gevolg van de temperatuur, dus het is van belang vele malen te meten en het gemiddelde of de mediaan en de omvang van de spreiding te vermelden.