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?
- A3 keer
- B4 keer
- 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.