Perfomance Tricks

harderph

Erfahrenes Mitglied
Moin an alle!

ich wollte mal fragen ob es irgendwelche tricks gibt die seite stabil laufen zu lassen wenn viele user gleichzeitig drauf sind! Ich höre von vielen das wenn viele user auf der website sind perfomance schwierigkeiten gibt oder die website ganz streikt!
also inprenzib ob sich ein template system lohnt oder nicht oder sowas in der art!
 
Eine Template Engine bedient ein völlig anderes Bedürfnis. Nämlich das der verbesserten Übersichtlichkeit/Verwaltbarkeit, Einheitlichkeit und Wiederverwendbarkeit.
 
Smarty z.B. hat 2 caching Stufen, die die arbeit die der Server hat entlasten. Weil vieles eben nicht für jeden User immer wieder neu zusammengetragen werden muss.

In der ersten werden die Templates zu einer einzigen ausführbaren php datei zusammen gefasst. Das die Site nicht mehr zu viele nicht benötigten Krams mit sich schleppt.
In der 2. werden Statische HTML Sites berechnet die der Server dann direkt wiedergibt.

Aber so etwas wird erst dann wirklich bemerkbar wenn du start frequentierte Websites hasts mit vielen tausend klicks / min. Und man muss eben auch damit umgehen können.
 
Die Performenc ist immer stark davon abhängig wie die Seite geschrieben wurde.
Wenn viel prast wird und mit Template gearbeitet wird die seite immer langsamer sein als eine die ohne Template system auskommt.

Das ganze hat wie überall vor und nachteile.Ein weitere Wichtiger punkt dabei ist die Datenbank. Wenn die Db nicht sauber und ordentlich geplannt wird dann führt das nacher zu starken perfomenc einbusen.(index setzen ,Normalformen beachten unsw.)
Also wenn jemand sich nicht mit Db wirklich auskennt und alles in eine Tabelle packt bei dem wird aufjedenfall bei größern Projekten zu Perfomenc problemen kommen.

Genauso kann man die Db auch entlasten wenn es um statische Daten geht die kann man wiederum in xml ablegen und damit wieder die Db ein wenig entlasten was allerdings dann wieder geprast werden muß meisten aber dann noch immer schneller ist.

Es gibt viele sachen die zu Performenc beitragen. Sauberes coden ist dabei das a und o.
Unötige Routinen oder abfragen vermeiden unsw.

Mfg Splasch
 
ich muss da splash recht geben, Schwierigkeiten entstehen zu 90% durch die Datenbank, da hilft nur lernen wie die Datenbank arbeitet und sich tief in die DB-Optimierung einarbeiten. Auch Caching ist ein Zauberwort mit dem man schnell mal alles hundertfach bis tausendfach schneller macht, also ich habe schon einige hig-performance-webanwendungen mit hohen peaks geschrieben und wirkliche probleme gab es noch nie, hier und da mal was, aber das konnte man optimieren.
 
Es gibt viele "Tricks" die einen Code schneller machen.
Diese Tricks können von Designfragen bis hin zu einfachen Funktionsaufrufen reichen.

Die Datenbank wurde angesprochen, jedoch ist dies finde ich kein "PHP Trick", das gehört zum Design.

Einfache PHP "Tricks" sind zum Beispiel:
  • kaum HDD zugriff (File IO Operations sind meine ich langsam)
  • Sinnvolle Anwendung von preg_* Funktionen
  • - Es ist schneller per strpos(), strncasecmp(), str_replace() einen String zu vergleichen|ersetzen (natürlich nur wenn möglich)
  • - Wenn möglich Non-Capturing preg_match, Bsp: preg_match('/(?:\w+)/i', $string)
  • - per strpos() (oder ähnliches) vorprüfen, ob überhaupt eine preg_match() funktion benötigt wird
  • Assoziative Arrays korrekt setzen $array['string'] anstatt $array[string]
  • Kein count($xy) oder strlen($xy) in FOR loops, also nicht for($x=0;$x < count($xy); $x++) ...
  • nutze Funktionen die PHP bietet, also erfinde das Rad nicht neu
  • usw ...
Man kann die Liste noch um etliche Punkte erweitern. Das ganze macht nicht viel aus, vllt wenige MilliSekunden. Das summiert sich vielleicht bei ein paar Tausend Hits pro Tag.
Richtigen Speed für den User/Kunden kriegt man nur über ein gutes Design der ganzen Applikation.
Caching ist da immer sehr gut.
Caching kann man aber auch wieder in x beliebige Bereiche einteilen.
  • Output Caching (Seiten cachen (am besten über RAM, z.b. per "mmCache")
  • Output per HTTP GZIP an User rausgeben
  • SQL Query Caching
  • Browser Caching mittels HTTP Header (Expires, Last Modified, ETag)
Dann könnte man noch Kleinigkeiten aufzählen, z.B. wenn ein Status in einer Datenbank hinterlegt wird oder im PHP Script abgefragt wird, sollte der Status nicht als String hinterlegt werden, sondern per Integer , Bsp: nicht als Status "ok" sondern 1, also if($status == "ok") sondern if($status == 1). String comparison sollte langsamer sein (egal ob in php oder in der SQL Abfrage) als Integer.

Ansonsten helfen nur Tests, eine Menge Tests...

Gruss
 
Mit diesen php-Optimierungen sparst du wirklich nur nano-Sekunden ein, da würde ich net nach ner Optimierung suchen (natürlich sollte man trotzdem die korrekten Datentypen und Funktionen nutzen), richtig Speed spart man durch Caching und DB-Optimierung, das sind die einzigen Punkte, wo es Sinn macht für eine Optimierung anzusetzen.
 

Neue Beiträge

Zurück