Performance

Performance und Software

Die Informationstechnologie liefert uns heutzutage eine riesige Funktionsvielfalt für schier unzählige Einsatzgebiete. Ein großer Mehrwert dieser Technologie ist es auch, das Funktionen jederzeit wiederholt abrufbar sind und diese in einer unglaublichen Geschwindigkeit laufen können.

Es ist schon erstaunlich was diese Technologie heutzutage alles leistet und in wie vielen verschiedenen Bereichen sie bereits eingesetzt wird. Jedoch so richtig begeistert bin ich erst, sobald eine Funktion nicht nur korrekt, sondern ebenso in einer enormen Geschwindigkeit läuft. Die Performance muss daher im gesamten Entwicklungsprozess betrachtet, bewertet und behandelt werden.

Entwicklung der Performance bei Soft- und Hardware

Als Software-Entwickler, der in seinen Anfängen auf Rechnern mit einem Arbeitsspeicher von 64 kb und einer Taktfrequenz von 0,9852484 MHz lauffähige Programme codierte, stimmt das Bild der heutigen Software, mit dem der Hardware nicht mehr ganz überein.
Mein aktueller Arbeitsrechner besitzt 8 GB Arbeitsspeicher und einen Prozessor mit 4 Kernen a 3,1 GHz Taktfrequenz.

Umgerechnet und gegenübergestellt

Damals Heute
Prozessortakt 1 x 0.0000610352 GHz 4 x 3,1 GHz
Arbeitsspeicher 0.0000610352 GB 8.0 GB

So betrachtet und hinein gefühlt, liegen Galaxien zwischen diesen Werten. Eine wahnsinnige Performance Steigerung auf Hardwareseite.

Wie sieht es bei der Software aus?
Die Software zielt in erster Linie auf ihren Funktionsumfang ab. Das ist auch das was wir benötigen. Jedoch nutzt uns keine Funktion, auf die wir warten müssen. Die Performance der heutigen Software stimmt mit der Leistung der Hardware nicht mehr überein.

Die Softwareentwicklung muss wieder viel stärker auf den Faktor Performance achten. Von der ersten Minute der Entwicklung sollte Performance daher ein Thema sein und im gesamten Verlauf kontrolliert und behandelt werden. Bitte nicht erst nachdem sich ein Kunde meldet, weil er seine Kaffeepause nun auf die Ausführungszeit einer Funktion legen konnte.

Warum Software zu oft eine schlechte Performance aufweist

Es kursiert eine Meinung in der Softwareentwicklung, die ich sehr oft gehört habe, jedoch selber nicht vertreten kann.

„Erst die Funktion entwickeln und danach die Performance anschauen“.

Die Begründung dieser Einstellung wird dadurch vertreten, als dass die Performance im Vorfeld schlicht weg nicht beachtet werden kann. Es gibt so viele Faktoren, die bei jedem noch so kleinsten Entwicklungsschritt im Vorfeld auf Performance überprüft werden können, dass ich diese Aussage nicht gelten lasse. Aus meiner Sicht ist mit dieser Einstellung bereits das Kind in den Brunnen gefallen.

High Performance Software entwickeln

Damit wir bei der Entwicklung einer neuen Funktion auf Performance achten können, müssen wir für das Pflichten und Lastenheft ein paar weitere Daten ausarbeiten.

Drei wichtige Fragen, die es mit dem Kunden zu klären gilt:

  • Um wie viel Daten handelt es sich?
  • Was wird auf den Daten operiert?
  • Wie hoch frequentiert wird die Funktion genutzt?

Zugegeben, es ist nicht immer ganz einfach, diese Fragen mit dem Kunden auszuarbeiten. Der Mehrwert allerdings übersteigt den Aufwand immens und erspart unnötige Nachbesserungszeit und Imageverlust, weil Performance Einbußen meist erst vom Kunden festgestellt werden.

Sobald also die Fragen wie viel, was und wie oft ausgearbeitet sind, kann nun bei jedem Entwicklungsschritt darauf geachtet werden. In kritischen oder fragwürdigen Fällen kann zudem, anhand von Prototypen, die Performance realitätsnah gemessen werden.

Durch stetige Achtung auf Performance bei der Softwareentwicklung, hat sich bei mir im Laufe der Jahre ein gewisses Bauchgefühl zu Datenmengen, Funktionen und Geschwindigkeiten eingestellt. Dieses Verständnis und Bauchgefühl wünsche ich jedem Entwickler, damit auch ich mir keine längeren Pausen mehr, wegen einer zu lange laufenden Funktion, gönnen muss.