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?

  1. ADas 3-Fache
  2. BDas 4-Fache
  3. 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.

Dieses Thema üben Zur Themenseite

Passende Rechner

Weitere Fragen zu Leistungsbewertung und Profiling

  1. Welche Grundformel für die Ausführungszeit eines Programms auf der CPU ist richtig?
  2. Ein Programm mit 1 Milliarde Befehlen wird auf einer CPU mit mittlerer CPI von 2 und 2 GHz Taktfrequenz ausgeführt. Wie groß ist die Ausführungszeit?
  3. Durch eine Änderung im CPU-Entwurf stieg die Taktfrequenz auf das 1,5-Fache, doch auch die CPI auf das 1,2-Fache (gleiche Befehlsanzahl). Um das Wievielfache wird die Ausführung schneller?
  4. Durch eine neue Compileroptimierung sank die Zahl der ausgeführten Befehle um 20 %, doch die mittlere CPI stieg um 10 % (gleiche Frequenz). Welche Aussage zur Wirkung dieser Optimierung ist richtig?
  5. Die Befehle eines Programms verteilen sich auf Ganzzahloperationen 50 % (CPI 1), Load und Store 30 % (CPI 2) und Verzweigungen 20 % (CPI 5). Wie groß ist die mittlere CPI?

Vergleiche zu diesem Thema