PHP Performance

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • PHP Performance

    Ich habe schon öfters gelesen das für größere Internetprojekte
    anstatt PHP, Perl zum Einsatz kommt weil es u.a. performanter ist usw....
    Aber stimmt das wirklich?
    Wenn man sauber & objektorientiert programmiert ist es dann wirklich langsamer als z.B. mit Perl oder Python?
    Habt ihr bereits Erfahrungen gemacht?
    Was sagt ihr dazu?

    Edit: Datenbanksprache z.B. MySQL

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Flasher ()

  • Ach weißt Du, zu dem Thema kann man Bücher schreiben - die richtige Antwort findet man trotzdem nicht. Es hängt immer davon ab, was man in welchem Szenario unter welchen Rahmenbedingungen womit vergleicht. Eine "korrekte" Antwort auf die Frage gibt es also immer nur unter Vorbehalt. Viele der größten Webprojekte laufen auf Basis von PHP, von einigen weiß ich, dass sie auf Perl aufbauen. Zahlreiche neue Web 2.0-Seiten (wie z.B. Twitter) setzen auf Ruby (on Rails). Alles hat seine Vor- und Nachteile, die "ideale" Sprache gibt es nicht. PHP ist mit Sicherheit am weitesten verbreitet und in der Folge am "besten" dokumentiert. Mit Perl zu arbeiten ist für viele eine Auszeichnung und die Sprache ist sehr mächtig. Ruby on Rails macht es dem Entwickler sehr leicht und nimmt einem viel Arbeit ab, skaliert dafür aber miserabel (darunter leidet eben Twitter seit es bekannt wurde). Welche Sprache die richtigste für das jeweilige Projekt ist, hängt von zahllosen Grundvoraussetzungen ab: Wie gut sind die Programmierer? Wie viel Geld für Infrastruktur steht zur Verfügung? Was für Besucherzahlen erwartet man (im besten Falle)? Was für eine Art von Applikation soll es werden? Wenn man diese und viele weitere Fragen ausreichend beantwortet hat wird die engere Auswahl (denn neben PHP, Ruby und Perl gibt es noch zahllose andere Sprachen, die hier in Frage kämen, nicht zuletzt Python!) eingegrenzt sein. Und dann kann man eigentlich ebenso gut die Münze werfen... :)
  • keksnicoh schrieb:


    Man kann mit jeder Sprache unperformant arbeiten.. Wenn man aber alles richtig macht, z.B. mit einem Cache Arbeitet bekommt man mit PHP sehr akzeptable Geschwindigkeiten auf die Beine.


    Das ist genau der Punkt.

    Ich habe mal einen netten Link wieder ausgegraben:
    reinholdweber.com/?p=3 (40 Tips for optimizing your php code )


    Ich behaupte schon, dass man sehr performant mit php arbeiten kann.


    Das Problem ist zu 80% die Datenbank.
    MySQL ist schon sehr gut, aber grade im High Availability Bereich und bei den TableLocks oder Indizies verliert diese doch gegen die großen (Oracle, DB2, MSSQL ...)

    Back to Topic:
    Es kommt natürlich auch auf den Server an. Läuft PHP als Modul oder als CGI. Welche Zusatzmodule (wie mod_rewrite, mod_security oder suhosin etc.) sind installiert, die den gesamten Prozess verlangsamen.


    Ich finde es da sehr schwierig zu vergleichen.


    Aber Fakt ist es, dass Objektorientiertes Programmieren langsamer ist als prozedurales Programmieren.
    Siehe c / c++
    Was nicht heisst, dass du grade an dieser Stelle "sparen" solltest ;)
  • Ich habe jetzt selber keine Statistik oder einen Vergleich, aber ich bin bei der DB2 von IBM hängen geblieben.

    www-01.ibm.com/software/data/db2/express/

    Informationen im Internet zu finden ist ziemlich schwierig.

    Ich selber habe mir dieses Buch für die DB2 geholt und war mehr als begeistert.
    [amazon]3827326729[/amazon]

    Auch wenn du die DB2 nicht unbedingt einsetzt aber deinen Horizont erweitern möchtest, hast du mit der Lektüre einen guten Rundumschlag.
  • vince schrieb:


    Das Problem ist zu 80% die Datenbank.
    MySQL ist schon sehr gut, aber grade im High Availability Bereich und bei den TableLocks oder Indizies verliert diese doch gegen die großen (Oracle, DB2, MSSQL ...)

    OK, es gibt ja möglichkeiten die SELECT's (am besten mit PHP) zu cachen, hat mir jemand entsprechende Tutorials/Links?
    Meine Suche bei Google ergab keine passenden Treffer.