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?

  1. AOmdat de rekenresultaten van de eerste paar keer altijd onjuist zijn
  2. 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
  3. 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.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Prestatiemeting en profiling

  1. Welke combinatie van probleem en tegenmaatregel is juist wanneer de tijd van een zeer korte bewerking slechts één keer wordt gemeten?
  2. Welk verschil tussen “wandkloktijd” (wall-clock time) en “CPU-tijd” bij het meten van de uitvoeringstijd is juist?
  3. Welke uitleg van doorvoer (throughput) en latentie (latency) van een server is juist?
  4. Waarom wordt bij de evaluatie van de responstijd van een webservice vaak niet alleen het gemiddelde bekeken, maar ook het 99e percentiel (de grens van de langzaamste 1 %)?
  5. Op een server komen 100 verzoeken per seconde binnen en de verwerking van één verzoek duurt gemiddeld 0,2 s (stationaire toestand). Hoeveel verzoeken zijn gemiddeld tegelijk in behandeling in de server (wet van Little)?