PHP Performance steigern
| Verfasst am: 19. 05. 2011 [18:49] | |||
Ultima Dabei seit: 09.07.2010 Themenersteller ![]() 759 Beiträge | Beitrag hilfreich? | ||
| Hallo alle zusammen, weil ich viel Wert auf Performance lege war ich Heute mal wieder auf der Suche um eine neue Methode zu finden die Performance von meinen PHP Programmen weiter zu steigern. So wirklich fündig bin ich aber nicht geworden, von daher würden mich eure Erfahrungen dazu interessieren. Und bitte nicht einfach nur irgendwelche Links, gegoogled hab ich schon den ganzen Tag, sogar bei Yahoo .... Viele Grüße Thomas Mein Portal: Ultima-Project.net - Gold für alle | |||
| Verfasst am: 19. 05. 2011 [20:26] | |||
UFOMelkor Dabei seit: 20.10.2009 ![]() 348 Beiträge | Beitrag hilfreich? | ||
| Hallo Thomas, was hast du denn bisher versucht? Mit fallen sonst auch nur die üblichen Verdächtigen ein:
Und bitte: Finger weg von Mikrooptimierungen | |||
| Verfasst am: 19. 05. 2011 [20:37] | |||
Chance Dabei seit: 13.11.2009 ![]() 140 Beiträge | Beitrag hilfreich? | ||
| -Stricte Gleicheit etc. verwenden -Strings bei mehrmaliger Verwendung zusammenfasse ( $test = 'bar'.$foo.'bar') -Sparsamm mit Arrays umgehen www.piacos.de www.psi-portal.de | |||
| Verfasst am: 19. 05. 2011 [22:02] | |||
Ultima Dabei seit: 09.07.2010 Themenersteller ![]() 759 Beiträge | Beitrag hilfreich? | ||
| Versucht und nutzen tu ich vieles. Mit dem Bytecode Cache meinst du APC oder? Was ich euren Aufzählungen noch hinzufüge würde wäre:
Richtig gut fand ich das Kompilieren von Klassen. Im Vergleich zu einfachen include Anweisungen sind sie bis zu ~44% schneller. Nur Unterstützt das kein Hosting Paket da braucht man schon einen eigenen Server mit vollem Root zugriff. Und wie gesagt, ich suche nach wie vor nach weiteren effektiven Möglichkeiten. [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 19.05.2011 um 22:02.] Mein Portal: Ultima-Project.net - Gold für alle | |||
| Verfasst am: 19. 05. 2011 [22:45] | |||
UFOMelkor Dabei seit: 20.10.2009 ![]() 348 Beiträge | Beitrag hilfreich? | ||
"Ultima" schrieb: Mit dem Bytecode Cache meinst du APC oder? Ja es gibt neben dem APC noch ein paar andere wie den eAccelerator, ein großer Unterschied ist das nicht (der APC bringt allerdings auch einen user-Cache mit). Was ich euren Aufzählungen noch hinzufüge würde wäre: "Ultima" schrieb: Bit-Operation bevorzugen Von Bit-Operatoren würde ich i.d.R. abraten. Das ist eine Mikro-Ooptimierung, deren Effekt sich zumeist in nicht merkbaren Bereichen abspielt, während der Code gleichzeitig schwieriger zu lesen und damit schwieriger zu warten wird. "Ultima" schrieb: Effektive Datentypen Was sind für dich effektive Datentypen und wo liegt ihr Vorteil? "Ultima" schrieb: Richtig gut fand ich das Kompilieren von Klassen. Im Vergleich zu einfachen include Anweisungen sind sie bis zu ~44% schneller. Nur Unterstützt das kein Hosting Paket da braucht man schon einen eigenen Server mit vollem Root zugriff. Kompilierte Klassen in PHP? Hast du da einen Link? | |||
| Verfasst am: 19. 05. 2011 [23:02] | |||
Ultima Dabei seit: 09.07.2010 Themenersteller ![]() 759 Beiträge | Beitrag hilfreich? | ||
"UFOMelkor" schrieb: Von Bit-Operatoren würde ich i.d.R. abraten. Das ist eine Mikro-Ooptimierung, deren Effekt sich zumeist in nicht merkbaren Bereichen abspielt, während der Code gleichzeitig schwieriger zu lesen und damit schwieriger zu warten wird. Mal ein Beispiel, hier ein Prüfung auf gerade oder ungerade Zahl. PHP for ($n=0;$n<120;$n+=1) {
if($n%2==0) echo 'gearde';
else echo 'ungearde';
}Nun mit Bit Operatoren: PHP for ($n=0;$n<120;$n++) {
if($n&1) echo 'ungearde';
else echo 'gearde';
}Der Rechenaufwand beim ersten Beispiel ist im Vergleich zum 2. wesentlich höher und bei entsprechenden Einsatz auch spürbar. Und das mit der Lesbarkeit ist schon richtig aber irgendwo auch eine Sache der Gewohnheit. "UFOMelkor" schrieb: Was sind für dich effektive Datentypen und wo liegt ihr Vorteil? PHP erkennt die Datentypen weitgehend automatisch, ich sehe es aber oft das Zahlen als Zeichenketten angelegt werden. Und vor jeder Rechenoperation ein Typecast ist schon überflüssig. Effektiv war vielleicht etwas falsch Formuliert. "UFOMelkor" schrieb: Kompilierte Klassen in PHP? Hast du da einen Link? Klar http://de3.php.net/manual/de/book.bcompiler.php Mein Portal: Ultima-Project.net - Gold für alle | |||
| Verfasst am: 20. 05. 2011 [01:12] | |||
masa8 Dabei seit: 22.10.2009 ![]() 946 Beiträge | Beitrag hilfreich? | ||
| Da PHP ja recht häufig im Verbindung mit MySQL verwendet wird, will ich hier mal auf die Möglichkeiten hinweisen, das sich einige Berechnungen direkt mit MySQL im Query durchführen lassen. Man muss sich nicht erst die DB-Werte holen, um sie mit PHP weiter zu verarbeiten, es geht auch direkt in der Abfrage an die Datenbank. Da steckt enormes Performance-Potential drin, und es ist nicht besonders schwer, mit MySQL-Funktionen und Left/Right-Joins, einiges an Code und Prozessorlast einzusparen. Mehr dazu gibt es hier: http://dev.mysql.com/doc/refman/5.1/de/functions.html Gruß Matthias Mein Blog über Wordpress, SEO, interne Verlinkung und mehr alles-mit-links BLACKINK Webkatalog - "Liftime" Eintrag 259,- € zzgl. MwSt. | |||
| Verfasst am: 20. 05. 2011 [12:36] | |||
romacron Dabei seit: 01.11.2009 ![]() 1143 Beiträge | Beitrag hilfreich? | ||
| Das sieht ja hier schon richtig gut aus. Matthias, ich stimme dir völlig zu. Die Datenbanken müssen ordentliche Querys abgefragt werden. Wer mit Joins nicht so gut klar kommt kann bereits mit einer bestimmten Abfrage von DB Spalten enorm punkten. So mancher speichert ne 1:1 kopie des Tables in einem object. Statt SELECT * FROM bigtable besser SELECT a.id, a.title ...diese Bauart mit Joins und alles ist gut. Mit so Kleinigkeiten holt man eine Menge Performance aus dem System, ohne sich endlos zu verbasteln(kosteneffizient). Hin und wieder sollte man den Profiler über den Code laden. Schnell sind "ich dreh mich doof und 3 mal im Kreis"- Funktionen ermittelt. gelegentlich "static" verwenden hilft. ..ich denke so laufen die Php-Anwendungen rund. die grössten Zeitfresser sind die Responses, die machen ca. die Hälfte eines Zyklus aus!! | |||
| Verfasst am: 20. 05. 2011 [12:45] | |||
Ultima Dabei seit: 09.07.2010 Themenersteller ![]() 759 Beiträge | Beitrag hilfreich? | ||
| Danke für eure Hinweise, aber es geht mir nur um PHP. Statische Klassen/Variablen verstopfen den Speicher da sie grundsätzlich geladen werden und überall sichtbar sind. Von daher sollte man den Einsatz nach Möglichkeit vermeiden. Mein Portal: Ultima-Project.net - Gold für alle | |||
| Verfasst am: 20. 05. 2011 [13:20] | |||
UFOMelkor Dabei seit: 20.10.2009 ![]() 348 Beiträge | Beitrag hilfreich? | ||
"Ultima" schrieb: PHP for ($n=0;$n<120;$n+=1) {
if($n%2==0) echo 'gearde';
else echo 'ungearde';
}Nun mit Bit Operatoren: PHP for ($n=0;$n<120;$n++) {
if($n&1) echo 'ungearde';
else echo 'gerade';
}Gegen das $n++ hätte ich nichts, das stört meinen Lesefluss nicht. Wenn mir aber jemand ein $n&1 vorlegen würde ... Die Sache ist die: Solange man nicht gerade 5 Millionen solcher Operationen hat, wirkt es sich nicht merkbar aus. Hab das jetzt nur kurz überflogen, aber macht die Erweiterung nicht im Grunde das gleiche wie APC & co? "romacron" schrieb: gelegentlich "static" verwenden hilft. "Ultima" schrieb: Statische Klassen/Variablen verstopfen den Speicher da sie grundsätzlich geladen werden und überall sichtbar sind. Von daher sollte man den Einsatz nach Möglichkeit vermeiden. AFAIK sind statische Methoden sind tatsächlich ungefähr 4 mal so schnell wie nicht statische Methoden (auf verschiedenen Seiten gelesen, nicht überprüft). Allerdings untergraben sie die OOP: "Robert C. Martin, Clean Code" schrieb: Im Allgemeinen sollten Sie nicht-statische Methoden den statischen vorziehen. Im Zweifelsfall sollten Sie eine Funktion als nicht-statisch deklarieren. Wenn eine Funktion wirklich statisch sein soll, sollten Sie dafür sorgen, dass sie sich bei keiner Gelegenheit polymorph verhalten soll. "romacron" schrieb: Hin und wieder sollte man den Profiler über den Code laden. Schnell sind "ich dreh mich doof und 3 mal im Kreis"- Funktionen ermittelt. Das möchte ich nochmal hervorheben. Die xdebug extension eignet sich hier sehr gut. Ansonsten fehlt noch das optimieren von Bedingungen: PHP if (slowCondition() || fastCondition()) {
//vermeiden
}
if (fastCondition() || slowCondition()) {
//bevorzugen
} | |||
Du bist nicht eingeloggt. Bitte beachte, dass Du eingeloggt sein musst, um Themen zu erstellen oder auf Beiträge zu antworten.
Werde in Echtzeit über neue Foren-Beiträge informiert:
9 Mitglieder waren innerhalb der letzten 15 Minuten online (57 heute gesamt):
alphamerisch, Boxerworld, ElkeTrautmann, Monchi, presse, romacron, San, timeless_81
Administratoren und Moderatoren:
seitenreport
Seitenreport hat 18153 registrierte Mitglieder, 3003 Themen und 29112 Beiträge.
Der aktuelle Mitgliederzuwachs liegt bei durchschnittlich 12 bestätigten Neuregistrierungen pro Tag.
Pro Tag werden im Seitenreport Forum durchschnittlich 1 neues Thema und 7 Beiträge erstellt.
Die Durchschnittszahlen berechnen sich aus den letzten 7 Tagen.

Lade...
Neueste Foren-Beiträge
| Abstimmung: 20.000 Mitglieder Jubiläum - was tun? Internes & Ankündigungen / Internes | Gestern [23:07] | |
| Microsofts soziales Netzwerk So.cl Internet / News | Gestern [20:03] | |
| Nicht nachvollziehbarer CSS Fehler Internes & Ankündigungen / Analyse-Ergebnisse | Gestern [13:37] | |
| Partnerprogramm: Eintrag für Kunden erledigt Internes & Ankündigungen / Internes | 22. 05. 2012 [10:35] | |
| Hotelbericht Entwickler Treffpunkt / Website vorstellen | 22. 05. 2012 [09:28] |
Lade...
Aktuelle Artikel:
Facebook - eine neue Tech-Blase?
Facebook ist in den vergangenen Tagen wegen seines Börsenganges und den dabei eingefahrenen Investorengeldern von 16 Milliarden Dollar großflächig in die Kritik geraten. Der Marktwert von 104 Milliarden Dollar wird von vielen als maßlos übertrieben angesehen. Ist Facebook eine neue Internet-Blase, die in den nächsten Jahren platzen wird?
Suchmaschinenoptimierung seit dem Google Penguin Update
Das neue Update vom Branchenriesen Google wird in Seo-Kreisen gerne mit einem Erdbeben verglichen. Diese Metapher trifft die Sachlage sehr gut, denn der Pinguin bringt die Arbeitsfundamente der Suchmaschinenoptimierer gehörig ins Wanken.
Tipps für den guten Start ins Business
Sich selbstständig machen, eine Firma gründen und direkt ins eigenständige Berufsleben einzusteigen klingt spannend und irgendwie auch einfach. Doch einfach ist es ganz und gar nicht...
Facebook - eine neue Tech-Blase?
Facebook ist in den vergangenen Tagen wegen seines Börsenganges und den dabei eingefahrenen Investorengeldern von 16 Milliarden Dollar großflächig in die Kritik geraten. Der Marktwert von 104 Milliarden Dollar wird von vielen als maßlos übertrieben angesehen. Ist Facebook eine neue Internet-Blase, die in den nächsten Jahren platzen wird?
18. Mai 2012
Suchmaschinenoptimierung seit dem Google Penguin Update
Das neue Update vom Branchenriesen Google wird in Seo-Kreisen gerne mit einem Erdbeben verglichen. Diese Metapher trifft die Sachlage sehr gut, denn der Pinguin bringt die Arbeitsfundamente der Suchmaschinenoptimierer gehörig ins Wanken.
15. Mai 2012
Tipps für den guten Start ins Business
Sich selbstständig machen, eine Firma gründen und direkt ins eigenständige Berufsleben einzusteigen klingt spannend und irgendwie auch einfach. Doch einfach ist es ganz und gar nicht...
14. Mai 2012




