Leistungsbewertung und Profiling

Welches Vorgehen bei der Leistungsverbesserung eines Programms ist am zutreffendsten?

  1. AZuerst messen und die zeitintensiven Stellen finden, diese verbessern und nach der Verbesserung erneut messen, um den Effekt zu bestätigen
  2. BVermutete langsame Stellen werden ohne Messung umgeschrieben
  3. CAlle Funktionen werden gleich stark optimiert
Antwort und Erläuterung anzeigen

Antwort: A. Zuerst messen und die zeitintensiven Stellen finden, diese verbessern und nach der Verbesserung erneut messen, um den Effekt zu bestätigen

Vermutungen darüber, wo es langsam ist, gehen selbst bei erfahrenen Personen oft fehl. Zuerst wird mit Profiler und Leistungszählern gemessen und ermittelt, wo viel Zeit verbraucht wird und was die Ursache ist (Berechnung, Speicher, Verzweigung, Ein-/Ausgabe usw.). Nach einer Verbesserung wird unter denselben Bedingungen erneut gemessen und geprüft, ob es wirklich schneller geworden ist und andere Teile nicht langsamer wurden. Diese Wiederholung ist die sichere Methode, Leistung zu steigern.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Leistungsbewertung und Profiling

  1. Welche Verbesserung hat bei einem Programm zur Verarbeitung großer Datenmengen am ehesten das Potenzial für den größten Speedup?
  2. Was ist der Zweck, in der Softwareentwicklung bei jeder Änderung automatisch Benchmarks auszuführen und die Ergebnisse aufzuzeichnen?
  3. Benchmark-Messungen auf einem Notebook streuten bei demselben Programm jedes Mal stark. Welche Kombination aus möglicher Ursache auf CPU-Seite und Gegenmaßnahme ist richtig?
  4. Warum werden bei Leistungsmessungen in Multicore- oder NUMA-Systemen Threads mitunter an bestimmte Kerne gebunden (Affinität gesetzt)?
  5. Was ist bei der Leistungsanalyse von GPU-Programmen zuerst zu prüfen?