dedlfix: Single-Responsibility-Prinzip für PHP?

Beitrag lesen

Tach!

Ein berufserfahrener Kommentator meine "funktionsaufrufe sind teuer". [...] Kommrt PHP mit diesem SRP klar oder sollte man das bei komplexen Systemen zugunsten der Perfomance mischen?

Jeder Code braucht Zeit für seine Ausführung. Natürlich nimmt es mehr Zeit in Anspruch, mehr Code ausführen zu müssen, wenn Übergabe von Parametern, Übernahme von Ergebnissen und die Verwaltung des Funktionsaufrufs hinzukommt. Die Abwägungsfrage ist aber, ob du nicht lieber drei Euro fuffzich mehr für eine bessere Maschine ausgeben möchtest, die dieses Manko wieder ausgleicht, oder ob du viel Arbeitszeit in die Wartung eines unhandlichen, unübersichtlichen Code-Monsters investieren möchtest.

Die meiste Ersparnis bekommst du nicht, indem du die Funktionsaufrufe minimierst, sondern indem du generell schaust, welche Arbeiten vermeidbar sind. Eine Seite (oder große Teile davon) muss zum Beispiel nicht jedes Mal neu erstellt werden, wenn sich deren Inhalt nicht ändert. Es bietet sich dann an, noch mehr Code in Form eines Caches auf das Problem zu werfen, wenn sich durch den einen Griff in den Cache eine aufwändige Neugenerierung vermeiden lässt. Der erste Aufrufer hat eine geringfügig längere Ausführungszeit als ein System ohne Cache, weil dieser ebenfalls noch bedient werden muss, alle anderen bekommen aber durch den Cache einen deutlichen zeitlichen Vorteil.

dedlfix.