Performance von OPP/Methodenaufrufen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Performance von OPP/Methodenaufrufen

    Hallo,

    ich arbeite gerade an einem etwas größeren Projekt, wo es mitunter auch auf die Geschwindigkeit der Skripte ankommt, da realtiv viele User gleichzeitig auf diese zugreifen. Da habe ich mir natürlich einige Fragen zur Performance gestellt:
    • Ist OOP generell gesehen schneller als eine prozedurale Programmierung? Was sollte man dann unbedingt beachten, dass eine gute Performance mit OOP gewährleistet ist?

    • Sind viele Methodenaufrufe INNERHALB der Klasse sehr performancelastig? Ich würde den Code nämlich so leicht wart- und erweiterbar machen wie möglich und strebe viele private-Methode an, die dann jeweils nur aus wenigen Zeilen bestehen und dafür aussagekräftige Namen haben. Oder ist es besser, wenn man eher wenige Methoden hat, die dann dafür aber länger und unübersichtlicher sind und wenig bis gar keine Methodenaufrufe anderer Klassen-Methoden haben?


    Vielen Dank für die Hilfe
    Gruß Tarlar

  • #2
    Zitat von Tarlar Beitrag anzeigen
    Ist OOP generell gesehen schneller als eine prozedurale Programmierung?
    Eher langsamer, da der Overhead meist größer ist.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Zitat von Tarlar Beitrag anzeigen
      Ist OOP generell gesehen schneller als eine prozedurale Programmierung?
      Nein. Wenn es einen relevanten Unterschied gibt, dann eher in die andere Richtung.

      ich arbeite gerade an einem etwas größeren Projekt
      Dann möchtest du für die Programmierung auf jeden Fall OOP, der Übersichtlichkeit und Wartbarkeit wegen.

      wo es mitunter auch auf die Geschwindigkeit der Skripte ankommt, da realtiv viele User gleichzeitig auf diese zugreifen.
      Wenn du die Entscheidung OOP oder nicht von der Ausführungsgeschwindigkeit abhängig machst - dann setzt du auf's falsche Pferd.
      Schau dir diesbezüglich lieber Bytecode-Compiler etc. an.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Ja, ich möchte natürlich mit OPP arbeiten, da das Ganze dann viel leicht wartbar und erweiterbar ist.

        Deshalb liegt mein Hauptaugenmerk eher auf der zweiten Frage (Methodenaufrufe) als auf der ersten!

        Kommentar


        • #5
          Wir reden hier wenn überhaupt von Microperformance, die kein Seitenbesucher spüren wird. Eine vernünftige, wartbare, erweiterbare Struktur mit sprechenden Methodennamen würde ich immer vorziehen, auch wenn sie im Einzelfall mal 2 Microsekunden langsamer ist.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Zitat von Tarlar Beitrag anzeigen
            Deshalb liegt mein Hauptaugenmerk eher auf der zweiten Frage (Methodenaufrufe) als auf der ersten!
            Die ist aber auch weniger relevant in Hinsicht Performance, sondern auch wieder mehr in Richtung Wartbarkeit.


            PHP-Code muss erst mal geparst werden - ob du da nun eine Methode mit 100 Zeilen Code hast, oder zehn mit zehn, macht keinen so großen Unterschied. Und die Ausführung spielt sich nachher sowieso auf Bytecode-Ebene ab, da sind „Methoden“ gar nicht mehr relevant.

            Du überlegst hier gerade im Bereich Mikro-Optimierung, und das ist bei Verwendung von PHP vergebene Liebesmüh'.

            Außerdem gilt die Regel, dass man nicht von vornherein zu viel Hinrschmalz in solche Überlegungen investieren sollte - die eigentlichen Flaschenhälse werden bei einem großen Projekt erfahrungsgemäß nachher doch woanders liegen; und um deren Behebung kümmert man sich dann, wenn sie sich bemerkbar machen. (Datenbank-Verbindung, Hardware, Memory, ...)
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Danke für die Antworten

              Dann kann ich das ganze schön strukturiert aufbauen...

              Kommentar


              • #8
                Hey, wenn du dir Gedanken um die Performance bei vielen gleichzeitigen Zugriffen auf deine Seite machst, würde ich mir eher Gedanken hinsichtlich der Datenbank machen. Ein gescheites Cachen wiederholender Datenbankabfragen mit kleineren Ergebnissen und wohlüberlegten Abfragen an diese, macht meinen Erfahrungen nach das Meiste aus. Unnötige Datenbankabfragen meiden + Cachen der Ergebnisse sowie der Projekt-Files ist schon ein guter Ansatz. Wir nutzen z.B. APC als Cache-System.

                Wie AmicaNoctis schon sagte, wir sind hier eher bei der Microperformance, da brauchst du dir denke ich nicht so viele Gedanken machen.

                Für das Thema Performance empfehl ich dir mal in diesen Blog zu schauen, da findest Du einige nützliche Informationen wo du sonst noch Performance sparen kannst!

                http://phpperformance.de/
                Viele Grüße
                af_net
                ---
                Discard.email - Wegwerf-E-Mail-Adresse
                DomFindr.net - RGP- & Expired-Domains

                Kommentar

                Lädt...
                X