Leistungsbewertung und Profiling
Warum wird die Ausführungszeit eines Programms oft mit vielen Wiederholungen gemessen und werden die Ergebnisse der ersten Läufe verworfen?
- AWeil die Rechenergebnisse der ersten Läufe stets falsch sind
- BWeil anfangs der Cache leer ist, Dateien gelesen und zur Laufzeit kompiliert wird und es daher langsam ist und die Messung zudem streut
- 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.