Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
71 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt am 02.08.2020 17:34:28 aktualiesiert
71

Prozedurale Programmierung ist tot. Es lebe die prozedurale Programmierung

Seit einiger Zeit ist auch PHP OOP-fähig – und das gar nicht mal schlecht inklusive Vererbung, Kapselung und Polymorphie.
Durch die 3 Grundsätze von OOP drücken sich auch die Vorteile davon aus: Code-Teile sollten einfacher wieder zu verwenden sein und Teams können effektiver gemeinsam programmieren.

Dieser Beitrag soll mal genauer beleuchten, wie hoch die Kosten für dieses Plus an Komfort sind, denn es ist ja offensichtlich, dass sich von Maschinencode über Assembler bis hin zu heutigen Programmiersprachen der Komfort beim Programmieren immer weiter verbessert hat – allerdings auf Kosten der Performance. Ist das bei PHP genauso?

Um die Frage zu beantworten haben wir eine einfache Aufgabe zu erledigen: Das Wort „Performance“ soll rückwärts ausgegeben werden. Dazu haben wir (mindestens) drei Möglichkeiten: eine globale Funktion, eine statische Methode in einer Klasse und eine nicht-statische Methode.

// als Funktion  
function turnLetters($string) {
    $newString = "";
    for($i=strlen($string)-1;$i>=0;$i- -) {
      $newString .= $string{$i};
    } 
 }    
// als statische Methode  
class StringFunctions {    
static function turnLetters($string) {
      $newString = "";
      for($i=strlen($string)-1;$i>=0;$i- -) {
        $newString .= $string{$i}; 
     }     
 return $newString;
    }  
}    
// nicht-statische Methode  
class StringFunctions {    
function turnLetters($string) {
     $newString = "";
      for($i=strlen($string)-1;$i>=0;$i- -) { 
       $newString .= $string{$i};
      }
      return $newString;
    } 
}
>

Die Geschwindigkeitsunterschiede sind nicht riesig, aber doch bemerkbar. Wenn der Interpreter zuerst das Objekt anlegen muss, wird dafür am meisten Zeit benötigt, aber seht selbst:

Datei Gesamtlaufzeit durchschnittliche Laufzeit pro Durchlauf Verhältnis zur schnellsten Variante
result_function.php 12.277654 s 1.228 ms 100 %
result_ staticmethod.php 12.658201 s 1.266 ms 103 % (+ 3%)
result_ nonstaticmethod.php 12.908561 s 1.291 ms 105 % (+ 5%)