Leistungsbewertung und Profiling

Warum wird die Ausführungszeit eines Programms oft mit vielen Wiederholungen gemessen und werden die Ergebnisse der ersten Läufe verworfen?

  1. AWeil die Rechenergebnisse der ersten Läufe stets falsch sind
  2. BWeil anfangs der Cache leer ist, Dateien gelesen und zur Laufzeit kompiliert wird und es daher langsam ist und die Messung zudem streut
  3. CWeil die CPU bei wiederholter Messung eine schnellere Schaltung aufbaut
Antwort und Erläuterung anzeigen

Antwort: B. Weil anfangs der Cache leer ist, Dateien gelesen und zur Laufzeit kompiliert wird und es daher langsam ist und die Messung zudem streut

Beim ersten Lauf beginnen Cache, TLB und Sprungprädiktor leer, Dateien liegen nicht im Cache des Betriebssystems und müssen von der Platte gelesen werden, und bei Sprachen mit JIT-Compiler wird auch in Maschinencode umgewandelt. Die ersten Läufe sind deshalb langsamer. Außerdem streuen Messungen durch andere Programme, Interrupts und temperaturbedingte Frequenzänderungen; wichtig ist daher, oft zu messen und Mittelwert, Median und Streuung anzugeben.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Leistungsbewertung und Profiling

  1. Welche Kombination aus Problem und Gegenmaßnahme ist richtig, wenn man die Zeit einer sehr kurzen Verarbeitung nur einmal zu messen versucht?
  2. Worin besteht beim Messen der Ausführungszeit der Unterschied zwischen „Wanduhrzeit“ (Wall-Clock-Time) und „CPU-Zeit“?
  3. Welche Beschreibung von Durchsatz und Latenz bei der Serverleistung ist richtig?
  4. Warum wird bei der Bewertung der Antwortzeit eines Webdienstes häufig nicht nur der Mittelwert, sondern auch das 99. Perzentil (Grenze zu den langsamsten 1 %) betrachtet?
  5. Bei einem Server treffen pro Sekunde 100 Anfragen ein, und die Verarbeitung einer Anfrage dauert im Mittel 0,2 Sekunden (stationärer Zustand). Wie viele Anfragen werden im Mittel gleichzeitig im Server verarbeitet (Littlesches Gesetz)?