Es gibt dutzende, wenn nicht sogar hunderte oder tausende, Wege eine Anwendung performanter zu gestalten. Einer der meistgenutzten Wege ist die Optimierung des Codes. Hierbei gibt es natürlich einige sehr interessante und gute Ansätze, aber auch viele, die die Wartungsfähigkeit des Codes einschränken oder schlichtweg nur minimale Gewinne bringen.
Vorweg wollen wir uns jedoch mit der Frage beschäftigen, ob Optimierungen wirklich nötig sind. Wenn eine Anwendung in einer für den Nutzer zumutbaren Zeit reagiert sollte man sich keine Gedanken machen hier noch etwas zu verbessern. Ebenso sollte man sich keinen unnötigen Aufwand zumuten, wenn sich das Problem durch Aufstocken der Hardware lösen lässt. Meist bringt das mehr und kommt günstiger. Man sollte jedoch dringend etwas unternehmen, wenn sich die Hardware sowieso schon auf einem Maximallevel befindet und diese an ihre Grenzen stößt.
Der übliche Weg ist dann mithilfe eines Profilers die Stellen im Code zu finden, die die Anwendung ausbremsen. Sobald man sie gefunden hat macht man sich Gedanken, was man verbessern kann. Beispiele hierfür sind weniger Datenbankabfragen ausführen, Ergebnisse zu cachen, Statements optimieren, etc.
Was man jedoch tunlichst vermeiden sollte sind Mikro-Optimierungen. In PHP gibt es hierfür einige tolle Beispiele, z.B. Strings in einfache Hochkommata schreiben, Prekrement statt Postkrement verwenden, kürzere Variablennamen zu verwenden, usw. Ich persönlich habe mir zwar einige Sachen davon angewöhnt, da es nie schaden kann hier und da eine tausendstel Millisekunde zu sparen, jedoch bringen diese Optimierungen meistens keine Verbesserung im Gegensatz zum vorherigen Stand. Viel wichtiger ist es seinen Code nochmal zu überdenken und alternative Methoden zu finden, die die Ausführung beschleunigen.
Irgendwie habe ich gerade das Gefühl, dass ich was komplett anderes geschrieben habe als ich ursprünglich wollte, aber die wichtigste Message habe ich genannt und darauf kommt es an. Übrigens gibt es auch bei PHP hates me einen Artikel dazu.
So ganz kann ich deinem Beitrag nicht zustimmen. Sicherlich ist die eigentliche Anwendung / Funktion am wichtigsten, dass diese auf den schnellsten Weg funktioniert und dabei die wenigsten Ressourcen verbrauch.
Hat man aber zum Beispiel eine Webseite mit mehr als 10.000 Usern am Tag, dann kommt man schnell an die Grenzen. Und spätestens dann wird die Microoptimierung mehr als wichtig und man lernt jedes kleine Zeichen weniger zu schätzen
Hey. Echt super Artikel. Er ist sehr informativ. Jedoch muss ich sagen stimme ich dir nur zu 95% zu