21. Codeoptimierung

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


Zentrale Aspekte

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, 2004McConnell, Steve (2004): Code Complete. A practical handbook of software construction, Microsoft Press, Redmond, Washington]. 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, 2004Raymond, Eric S. (2004): The Art of UNIX Programming, Addison Wesley, Boston] und in Kapitel 7 in [Kernighan, 1999Kernighan, Brian W.; Pike, Rob (1999): The Practice of Programming, Addison Wesley, Boston]. Eine gute Einführung in die O-Notation für die Komplexität von Algorithmen liefert Abschnitt 32, S. 177ff. in [Hunt, 1999Hunt, Andrew; Thomas, David (1999): The Pragmatic Programmer, Addison-Wesley, Boston].

Kapitel 12 in [Scopatz, 2015Scopatz, Anthony; Huff, Kathryn D. (2015): Effective Computation in Physics, O'Reilly, Sebastopol] 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, 2013Passig, Kathrin; Jander, Johannes (2013): Weniger schlecht programmieren, O'Reilly, Heidelberg] gibt eine kurze deutschsprachige Einführung in die Thematik.