Leistungsbewertung und Profiling
Eine Funktion f, die pro Aufruf in 20 ns fertig ist, wird millionenfach aufgerufen. Sie wird mit einem instrumentierenden Profiler gemessen, der am Ein- und Ausgang von Funktionen Aufzeichnungscode einfügt. Wenn die Aufzeichnung pro Aufruf insgesamt 60 ns dauert und diese Zeit vollständig f zugerechnet wird, das Wievielfache ihrer tatsächlichen Zeit beträgt dann die gemessene Zeit von f?
- ADas 3-Fache
- BDas 4-Fache
- CUnverändert (das 1-Fache)
Antwort und Erläuterung anzeigen
Antwort: B. Das 4-Fache
Jeder gemessene Aufruf von f dauert die tatsächlichen 20 ns plus 60 ns für die Aufzeichnung, also 80 ns, und 80 ÷ 20 ergibt das 4-Fache. Dieses Phänomen, bei dem der Messmechanismus genau das Verhalten verändert, das gemessen werden soll, heißt Beobachtereffekt (Probe Effect). Die Aufzeichnung verdrängt außerdem Cache-Inhalte, sodass die Verlangsamung in der Praxis noch größer sein kann. Bei Programmen mit vielen kleinen Funktionen misst man die Zeitanteile mit einem Sampling-Profiler oder zieht den Messaufwand selbst ab.
Weiter: 9 weitere Fragen zu Leistungsbewertung und Profiling