Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:lehre:softwareentwicklung:ws2017:21:index

21. Codeoptimierung

Themen
Motivation
Voraussetzungen
Strategien
Zusammenhang mit „Clean Code“
Folien
PDF


Zentrale Aspekte

  • Laufzeit und Ressourcenverbrauch sind in den
    seltensten Fällen ein ernsthaftes Problem.
  • Code sollte nur dann optimiert werden,
    wenn es unumgänglich ist.
  • Voraussetzungen für erfolgreiche Optimierung sind
    Messbarkeit, Tests und Versionsverwaltung.
  • Optimierungsstrategien hängen oft von Architektur, Programmiersprache und Compiler ab.
  • Optimierungen haben häufig (ungewollt)
    Einfluss auf die Funktionalität.

Weiterführende Literatur

Eine kommentierte und handverlesene Liste mit weiterführender Literatur zum Thema. Die Auswahl ist zwangsläufig subjektiv.

Codeoptimierung ist insofern ein schwieriges Thema, als dass der Erfolg konkreter Strategien sehr von den jeweiligen Umständen abhängt. Deshalb ist es sinnvoll, sich auf das allgemeine Vorgehen zu konzentrieren. Eine recht ausführliche Beschreibung der allgemeinen Herangehensweise inklusive deutlicher Warnungen findet sich in Kapitel 25 in {[mcconnell-s-2004]}. Das anschließende Kapitel 26 beschreibt dann eine ganze Reihe konkreter Optimierungstechniken inklusive der Vergleiche für jeweils mehrere Programmiersprachen.

Weitere Beispiele für allgemeine Beschreibungen des Problems und Vorgehens bei Codeoptimierung, jeweils mit Beispielen für konkrete Techniken, finden sich in Kapitel 12 in {[raymond-es-2004]} und in Kapitel 7 in {[kernighan-bw-1999]}. Eine gute Einführung in die O-Notation für die Komplexität von Algorithmen liefert Abschnitt 32, S. 177ff. in {[hunt-a-1999]}.

Kapitel 12 in {[scopatz-a-2015]} befasst sich mit Parallelisierung als Spezialgebiet der Steigerung der Ausführungsgeschwindigkeit, die für manche Aspekte in den Naturwissenschaften durchaus von Belang sein kann, Abschnitt „Performancetests“ in Kapitel 16 in {[passig-k-2013]} gibt eine kurze deutschsprachige Einführung in die Thematik.

<bibtex bibliography> sort=true </bibtex>

de/lehre/softwareentwicklung/ws2017/21/index.txt · Zuletzt geändert: von 127.0.0.1