Prestatiemeting en profiling

Een functie f die per aanroep in 20 ns klaar is, wordt miljoenen keren aangeroepen. Ze wordt gemeten met een instrumenterende profiler die registratiecode toevoegt aan het begin en het einde van functies. Als de registratie per aanroep in totaal 60 ns kost en die tijd volledig als tijd in f wordt geteld, hoeveel keer de werkelijke tijd wordt de gemeten tijd van f dan?

  1. A3 keer
  2. B4 keer
  3. COngewijzigd (1 keer)
Antwoord en toelichting tonen

Antwoord: B. 4 keer

Elke gemeten aanroep van f duurt de werkelijke 20 ns plus 60 ns registratie, dus 80 ns, en 80 ÷ 20 = 4 keer. Dit verschijnsel, waarbij het mechanisme om te meten het gedrag dat wordt gemeten zelf verandert, heet het probe-effect. De registratie vervangt ook de inhoud van de cache, dus in de praktijk kan de vertraging nog groter zijn. Bij programma's met veel kleine functies meet men de tijdsverdeling met een samplingprofiler, of trekt men de meetoverhead zelf af.

Dit onderwerp oefenen Naar de onderwerppagina

Verwante rekentools

Meer vragen over Prestatiemeting en profiling

  1. Welke formule geeft de uitvoeringstijd van een programma op de CPU juist weer?
  2. Een programma van 1 miljard instructies wordt uitgevoerd op een CPU met een gemiddelde CPI van 2 en een klokfrequentie van 2 GHz. Wat is de uitvoeringstijd?
  3. Door een wijziging in het CPU-ontwerp is de klokfrequentie 1,5 keer zo hoog geworden, maar is de CPI ook 1,2 keer zo hoog geworden (hetzelfde aantal instructies). Hoeveel keer zo snel is de uitvoering vergeleken met het origineel?
  4. Door een nieuwe compileroptimalisatie daalt het aantal uitgevoerde instructies met 20 %, maar stijgt de gemiddelde CPI met 10 % (dezelfde frequentie). Welke uitspraak over het effect van deze optimalisatie is juist?
  5. De instructies van een programma bestaan uit 50 % integerberekeningen (CPI 1), 30 % load en store (CPI 2) en 20 % sprongen (CPI 5). Wat is de gemiddelde CPI?

Vergelijkingen bij dit onderwerp