Diskussion
PHP: Performance verbessern
GZip / Cache
| cr4m0 |
Geschrieben am: Mo 24.03.2008, 16:12
|
|
AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 217 Mitglied seit: 30.07.2007 |
Ich beschäftige mich im Moment damit, die Performance meiner Seite zu verbessern, die ich mit PHP programmiert habe. Als Datenbank nutze ich MySQL. Dazu habe ich zwei angeblich gute Methoden gefunden. Könnt ihr etwas dazu sagen, habt ihr sie vielleicht schon getestet?
1) GZip-Komprimierung verwenden, dafür gibt es "http://hx3.de/software-webentwicklung-23/tutorial-g-e-zip-pt-surft-sichs-besser-9764/" mit mehr Komfort 2) Cache für die PHP-Seiten verwenden, z.B. durch "http://sourceforge.net/projects/quickcache/" 3) Cache per HTML-Datei, Anleitung auf "http://phpperformance.de/ausgaben-in-cache-speichern/" 4) Puffer durch ob_start / ob_get_clean |
![]() |
| Chr1977 |
#2 Geschrieben am: Mo 24.03.2008, 16:46 (+00:34)
|
|
AyomRank 3 ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 38 Mitglied seit: 10.08.2006 |
Sind denn die Datenbank-Abfragen auch schon optimiert? Je nach Größe der Datenbank kann sowas ja auch die Performance der Seite stark beeinflussen.
Caching habe ich bei eigenen Skripten noch nicht selbst eingesetzt, aber ich habe mal gelesen, dass sich damit die Performance je nach Aufbau der Seite stark beschleunigen lässt. -------------------- |
![]() |
| manuel |
#3 Geschrieben am: Mo 24.03.2008, 17:22 (+00:36)
|
![]() AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 261 Mitglied seit: 14.01.2004 |
4.) APC / eAccelerator etc. verwenden.
- für a.) Opcache - für b.) Ergebnisse im Memory speichern. 5.) z.B. mit Xampp eine profiling-Datei erstellen mit wincachegrind analysieren und langsame Stellen optimieren. 6.) Ergebnisse in serialized Arrays ablegen 7.) wenn man echt verzweifelt ist php-Optimzier mit 4.) kombinieren oder alleine verwenden. und die Datenbank Abfragen (wenn komplex) optimieren!! |
![]() |
| cr4m0 |
#4 Geschrieben am: Mo 24.03.2008, 17:51 (+00:28)
|
|
AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 217 Mitglied seit: 30.07.2007 |
OK, Danke schonmal für eure Antworten.
eAccelerator ist auch ein Open-Source-Produkt zum Erstellen eines Cache für PHP-Seiten. Dafür muss man aber Änderungen an der Serverkonfiguration vornehmen, was ich nicht darf (Shared Hosting). Bei JPCache muss man das nicht machen. Danke auch schonmal für die ganzen anderen Tipps, die werde ich mir bald auch mal genauer ansehen. Mich würde aber noch mehr interessieren, welche Erfahrungen ihr mit den ersten vier Methoden (mein erster Beitrag) gemacht habt und ob ihr diese empfehlen könnt. |
![]() |
| Jürgen Auer Server-Daten - Online-CRM-Lösungen |
#5 Geschrieben am: Mo 24.03.2008, 18:44 (+00:53)
|
||
|
AyomRank 9 Gruppe: Experten Entwicklung Beiträge: 3274 Mitglied seit: 4.02.2006 |
Zuerst kommt die Diagnose, dann kann man sich um die richtige Kur bzw. die passende Medizin Gedanken machen. Sprich: Auch mit PHP-Kenntnissen könnte ich jetzt noch gar nix sagen - und sollte auch nichts sagen. 5 Beispiele:
In allen fünf Fällen sieht die Kur / die Medizin anders aus. Sprich: Erst einmal die zeitraubenden Stellen identifizieren. Anmerkung zum GZIP: Der oben zitierte Artikel verweist in den Features auf ein Problem:
GZIP erzeugt zusätzliche Prozessorlast. Wenn (4) oder (5) das Problem wäre, dann würde sich das mit GZIP womöglich noch verschlimmern. -------------------- Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.
Server-Daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung. Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - Ihre Datenbank funktioniert. |
||
![]() |
| cr4m0 |
#6 Geschrieben am: Mo 24.03.2008, 19:47 (+01:02)
|
|
AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 217 Mitglied seit: 30.07.2007 |
OK, das stimmt wohl. Aber es gibt ja auch Verbesserungen, die grundsätzlich durchgeführt werden können und immer helfen. Zum Beispiel ist mysql_fetch_assoc immer schneller als mysql_fetch_row, mysql_fetch_array und mysql_fetch_object. Deshalb habe ich diese Funktionen schon ersetzt.
Bei GZip habe ich jetzt eingesehen, dass es nicht das Beste ist. Aber es gibt ja noch drei Möglichkeiten zum Verbessern der Performance, die ich genannt habe: 1) Cache für die PHP-Seiten verwenden, z.B. durch "http://sourceforge.net/projects/quickcache/" 2) Cache per HTML-Datei, Anleitung auf "http://phpperformance.de/ausgaben-in-cache-speichern/" 3) Puffer durch ob_start / ob_get_clean Wie findet ihr diese Möglichkeiten? Sind sie sinnvoll? |
![]() |
| profo |
#7 Geschrieben am: Mo 24.03.2008, 21:24 (+01:37)
|
![]() AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 433 Mitglied seit: 19.01.2007 |
Ich würde Dir vorschlagen, Dir vor jeglicher Optimierung den Rat von Jürgen zu Herzen zu nehmen.
Wenn Du nicht weisst, was Deine Seite ausbremst, ist jegliche Optimierung ein Fehler. Du steckst nämlich Arbeitszeit in etwas, das überhaupt kein Problem ist. Und riskierst es, durch die unnötige Änderung Fehler oder Inflexibilitäten einzubauen. Ich kenne das selbst von manchen Kunden; großen wie kleinen. Sie wollen ihr Projekt gerne starten, und es soll möglichst heute noch losgehen. Aber eigentlich wissen sie gar nicht, wohin. Und wenn man sich ans Motto: "Wohin? Weiss nicht. Aber erst mal losgehen!" hält, läuft man manchmal auch vom Ziel weg. Abgesehen vom Grundsätzlichen finde ich die Sammlung mit Optimierungs-Tipps aber schick! |
![]() |
| cr4m0 |
#8 Geschrieben am: Mo 24.03.2008, 23:26 (+02:01)
|
|
AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 217 Mitglied seit: 30.07.2007 |
Ich habe einige Artikel auf "http://www.phpperformance.de/" gelesen. Da werden PHP- und MySQL-Anwendungen getestet und in der Performance verglichen. Diese Seite kann ich jedem empfehlen, die Artikel sind sehr gut und es gibt auch viele Kommentare und Tipps von anderen Leuten da.
Laut dieser Seite bringen bestimmte Veränderungen immer Vorteile, z.B. mysql_fetch_assoc statt den anderen Möglichkeiten. Diese Veränderungen meinte ich. Deshalb wollte ich auch wissen, ob ihr Erfahrungen mit den folgenden Möglichkeiten habt: 1) Cache für die PHP-Seiten verwenden, z.B. durch "http://sourceforge.net/projects/quickcache/" 2) Cache per HTML-Datei, Anleitung auf "http://phpperformance.de/ausgaben-in-cache-speichern/" 3) Puffer durch ob_start / ob_get_clean Von Jürgens aufgelisteten Problemem sind 1-3 auf keinen Fall bei mir vorhanden. 4 und 5 im Moment auch nicht. Mir geht es auch nicht darum, dass meine Seite einen Fehler hat und eine riesige Auslastung hat. Ich möchte nur alles optimieren, damit die Seite auch möglichst hohe Besucherzahlen aushält, ohne dabei Ladezeiten von 5 Sekunnden bei DSL zu haben... |
![]() |
| profo |
#9 Geschrieben am: Mo 24.03.2008, 23:42 (+00:16)
|
![]() AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 433 Mitglied seit: 19.01.2007 |
Mit Caching habe ich ein wenig Erfahrung. Es schränkt die Dynamik Deiner Seiten immer ein bisschen ein. Wenn Du eine nennenswerte Zahl an Seiten hast, bei denen sich nichts ändert, ist File- oder Speichercaching aber sehr sinnvoll. Persönlich würde ich da - wie Du vielleicht schon vermutest - rein gar nichts machen, solange es keine Lastprobleme gibt. Ich finde die Zeit dann besser in Content und Usability aufgehoben.
|
![]() |
| PH |
#10 Geschrieben am: Di 25.03.2008, 08:57 (+09:14)
|
|
AyomRank 8 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 1717 Mitglied seit: 29.08.2004 |
PHP/MySQL Tuning vornehmen (ich hatte irgendwo selbst ein Paar Beiträge dazu geschrieben), irgendeinen Optimizer/Accelerator (Ich glaube ich habe Zend Optimizer drauf) installieren, ein Paar Indexe hier und da hinzugeben, an den Ressourcen-Zuweisungen in MySQL.ini etwas drehen...
das sollte für den Durchschnitts-Server bereits genügen. Wenns nicht gerade eine Riesen-Seite ist und der Server eh etwas unterdotiert in RAM ist (z.B. alles unter 1 GB), kann es sich lohnen, einfach 1 GB mehr RAM einzuschieben, und etwas besseres mit seiner Zeit anzufangen. Komprimieren (Gzip) dient etwas völlig anderem, und zwar reduziert es stark den Traffic, der durch Text-lastige Seiten verursacht wird. |
![]() |
| hatschi1810 |
#11 Geschrieben am: Di 25.03.2008, 11:20 (+02:23)
|
![]() AyomRank 6 Gruppe: Experten Entwicklung (Mod) Beiträge: 663 Mitglied seit: 20.01.2004 |
Ich möchte nur anmerken dass das Komprimieren bei sehr vielen Servern sehrwohl eine wesentliche Verbesserung der Serverperformance bewirken kann, das hängt aber davon ab was der Flaschenhals ist.
Die Anzahl der Requests an den Server läst sich so ordentlich senken, das sollte man nicht unterschätzen. Läst sich aber recht leicht ausprobieren, danach weiß man sicher mehr… |
![]() |
| cr4m0 |
#12 Geschrieben am: Di 25.03.2008, 15:02 (+03:41)
|
|
AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 217 Mitglied seit: 30.07.2007 |
OK, wenn ich mal einen eigenen Server habe, kann ich das nutzen. Im Moment habe ich ja noch Shared Hosting und kann das alles nicht nutzen.
Aber was haltet ihr davon, PHP-Seiten für eine bestimmte Zeit in HTML-Dateien als Cache zu speichern? Beispiele: - http://phpperformance.de/ausgaben-in-cache-speichern/ - http://sourceforge.net/projects/quickcache Dadurch müssen die Seiten für eine bestimmte Zeit (z.B. 5 Minuten) nicht mehr "zusammengebaut" werden, dadurch muss der PHP-Parser nicht mehr laufen und es ist kein MySQL-Zugriff mehr nötig. Und in 5 Minuten ändern sich eh die wenigsten Seiten... |
![]() |
| hatschi1810 |
#13 Geschrieben am: Di 25.03.2008, 15:48 (+00:46)
|
![]() AyomRank 6 Gruppe: Experten Entwicklung (Mod) Beiträge: 663 Mitglied seit: 20.01.2004 |
So oft wie du nachfragst hättest du es testweise schon wo einbauen können ;-)
Auch bei Seiten die sich jedes mal ändern kannst du cachen, und zwar einfach die Teile, die sich nicht ändern. Klar bringt das war von Fall zu Fall was (immer schön testen und messen!). Willst du die vom Besucher wahrgenommene Zeit verbessern kann ich übrigens das Tutorial von Yahoo empfehlen: http://developer.yahoo.com/performance/rules.html |
![]() |
| cr4m0 |
#14 Geschrieben am: Di 25.03.2008, 16:29 (+00:40)
|
|
AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 217 Mitglied seit: 30.07.2007 |
OK, ich hab's jetzt getestet!
Das Caching funktioniert auf jeden Fall. Große Geschwindigkeitsvorteile gibt es nicht, aber auf jeden Fall wird ja die Server-Last reduziert. Denn jetzt müssen die Inhalte nur noch aus HTML-Dateien geladen werden und nicht mit einer MySQL-Verbindung geladen und zusammengesetzt werden. Allerdings braucht man beim Caching viel Speicherplatz, da ja für jede einzelne Seite per Parameter auch eine eigene HTML-Datei erstellt wird. |
![]() |
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/23634
![]() |
![]() ![]() ![]() |
| Themen Titel | Autor | Views | Antworten | Letzte Aktion |
| Sql-Hardcore: Flexible Sortierungen / Performance | Jürgen Auer | 328 | 2 | Mi 24.02.2010, 15:08 |
| mysql performance | Felix Weber | 293 | 8 | Di 19.01.2010, 21:01 |
| Was SEO techn. verbessern? | Basti24 | 347 | 6 | So 8.11.2009, 20:29 |
| Was kann man am Design verbessern? | AkteX1 | 229 | 3 | Di 27.10.2009, 17:29 |
| Was könnte ich bezüglich SEO verbessern? | dokublog | 1246 | 30 | Mi 22.07.2009, 08:22 |
| Managed Server gesucht mir sehr guter Performance | ajse80 | 735 | 7 | Mi 6.05.2009, 23:18 |
| htaccess: Performance bei +100 Redirects | Sandro Feuillet | 482 | 6 | Mi 28.01.2009, 08:47 |
| Was kann man verbessern? | chricke | 414 | 3 | Do 22.01.2009, 22:14 |
| Neues "Performance Media Netzwerk" von TD Schweiz | TD Michel | 264 | 0 | Di 25.11.2008, 15:59 |
| Serverbasierte Bildbearbeitung - Performance PHP | Martin J | 316 | 0 | Mi 24.09.2008, 19:19 |
Anzeige - [Hier werben / Mediadaten]
















