PHP Blogger

Startseite Schreib mir ne Mail! RSS Abo Webnews

Archiv für Performance

Linktipps: Performance und Produktivität

Ich habe ja einiges aufzuholen und deshalb möchte sich so nach und nach meine gesammelten Linktipps mit Euch teilen. Die Links sind zwar schon ein paar Tage alt, aber es ist nie zu spät zum posten derselben. Die Gültigkeit bleibt wohl erhalten.

Fangen wir mal an - mit dem Thema Performance. Ein alter Hut sozusagen. Aber welche Applikation benötigt nicht mal den einen oder andren Performance-Boost? Die alten Hasen unter Euch freuen sich bestimmt über eine kleine Auffrischung mit Hilfe der Tipps, PHP-Anfänger wahrscheinlich allein über die Existenz derselben.

Über die Zend Developer Zone (engl.) bin ich auf den Beitrag von Stas Malyshev aufmerksam geworden. Bei seinem Beitrag mit dem schicken Titel “more on PHP performance” versucht er in einer Art Übersicht aufzuzeigen, worauf man achten kann bzw. sollte, wenn man seiner Applikation etwas Gutes in Form von Performance tun möchte. Wirklich ausführlich ist das natürlich nicht, dafür spricht er vielfältige Themen an.

Den kompletten Artikel lesen »


Objektorientierung vs. Performance

So schnell können Wünsche in Erfüllung gehen Julius ;) Das mit dem Artikelwunsch ist eine prima Sache für Autoren. Ich gebe zu, in letzter Zeit bin ich wenig fantasievoll, was Artikelthemen angeht. Dann schreibt man halt über ein Thema, das einen selbst gerade beschäftigt und natürlich nutze ich meinen Blog auch dazu, Lösungswege für mich (und die Öffentlichkeit) festzuhalten.

Performance als Thema ist immer so eine Geschichte. Bei den meisten kleinen Projekten eher präventiv zu sehen, ist es bei Business-Projekten mit hohen Zugriffszahlen und/oder gigantischen Datenbankgrößen ein nicht unwesentlicher Aspekt bei der Webentwicklung.

Aber aus Spiel und Spass kann schnell ein großes Projekt werden, weil es das mehr oder minder breite Publikum begeistert und die Zugriffszahlen in die Höhe schießen lassen und die Entwicklung mit dem Tuning nicht mehr nachkommt. In diesem Fall (und allen anderen) rechnet sich dann eben eine sorgfältige leicht paranoide Planung der Entwicklung nach dem Motto, was wäre wenn…

Den kompletten Artikel lesen »


SQL Buddy: phpMyAdmin schick angezogen (und hackbar!)

Seit einiger Zeit verstaubt ein weiterer Bookmark in meiner Sammlung und schreit förmlich danach, ausprobiert zu werden: SQL Buddy. Der Name ist so eingängig, ich habe noch nicht einmal den Bookmark-Dienst meines Vertrauens bemühen müssen - schnell mal gegoogelt, wird schon oben stehen.

Was direkt oben steht ist das gleichnamige Open Source Projekt, das bei Sourceforge gehostet wird - Ein Datenbankmanager für Windows, der SQL Server bedient. Das Projekt scheint allerdings schon ein paar Jahre eingemottet zu sein - wenn man das nach der Website beurteilt.

Ich plädiere dafür, das blöde Sourceforge-Projekt vom Sockel zu werfen! Her mit den Backlinks, hier und hier und hier. Lift it up, Google - dann wird die Welt wieder etwas eindeutiger… Ich hoffe, das das jetzt nicht als URL-Spamming gewertet wird (Und wenn, dann nur als liebes URL Spamming)… Huch, jetzt ist ja fast eine Träne die Backe runtergekullert. *lach*

Den kompletten Artikel lesen »


Wo ist meine MySQL Performance?

Kennen wir das nicht alle? Wir schreiben eine super Webanwendung, nur um dann festzustellen, dass nach einer Weile die Seite immer langsamer wird? Wir optimieren die Performance bis zum geht nicht mehr, testen alle möglichen Funktionen, nur um dann festzustellen, dass das Problem in zu langsamen Antworten vom Datenbank-Server liegt.

Das muss man auch schneller rausfinden können und tatsächlich, mir hat sich wieder eine neue Welt geöffnet.

Den kompletten Artikel lesen »


Mobile Webseiten mit PHP

.mobi Logo

Zur Zeit wird irgendwie alles mobil. Die Email auf dem Handy, das Internet auf dem iPhone - dass meine Oma mit 80 noch Auto fährt ist da nix besonderes mehr… Aber wie geht das eigentlich? Was ist so magisch an dem Wörtchen “mobil”? Braucht es etwas besonderes, um eine Webseite mobil zu machen?

Eieiei, Fragen über Fragen. Aber dem werden wir mal auf den Grund gehen. In Anbetracht der Tatsache, das das Kundenvolk immer lauter nach mobilen Webseiten schreit, ist es eigentlich auch höchste Zeit, hier mal einzuhaken.

Den kompletten Artikel lesen »


Performance: MySQL Result-Sets auslesen

Endlich seit langem mal wieder ein sehr interessanter Artikel vom PHP Performance Blog. Diesmal wurde untersucht, mit welcher Methode man am schnellsten Daten aus einem MySQL Result-Set laden kann.

Als Sieger benennt er mysql_fetch_row (Platz 1) und mysql_fetch_assoc (knapp dahinter auf Platz 2). Diesmal gibt es zwei Sieger, obwohl eine Funktion eindeutig schneller ist :) Der Grund ist ganz einfach: mysql_fetch_assoc ist schlichtweg übersichtlicher und zukunftsicherer als ein numerisch aufgezogenes Array (Man denke an neue Tabellenspalten).


Newsletter Queue mit PHP

Wer massenweise Newsletter versendet, und ich meine wirklich massenweise: Wenn mehrere tausend Mails der Regelfall sind, ist es der Web- und Mailserver-Performance zuträglich, wenn man eine Queue verwendet.

Ich habe selbst seit einigen Jahren eine ähnliche Queue im Einsatz, wie ich sie heute bei den PHP Classes entdeckt habe. Diese Newsletter Queue verwendet eine MySQL Datenbank um die Mails mit Empfänger, Betreff, Absender und Body zwischen zu speichern. Zusätzlich gibt es noch eine Status Flag, der aussagt, ob die Mail gerade bearbeitet wird (pending). Nach Abschluss der Bearbeitung wird der Datensatz aus der Datenbank entfernt.

Das Versenden übernimmt übrigens ein Cronjob, für den auch gleich ein passendes Script mitgeliefert wird.

Einziges Manko wäre meiner Meinung nach der fehlende Support für Attachments, weil wirklich nur der HTML Body gespeichert wird. Aber ich denke mit 2, 3 Handgriffen kann man den kompletten Mail-Quelltext samt Anhängen in die Datenbank schreiben und versenden.

Update: Alternativ sei auch jedem der PHP mini Mailer empfohlen - super schnell und einfach Mails mit Attachments und Dringlichkeitshinweis versenden… Auch Massenversand über den BCC-Header ist möglich, vorausgesetzt der eigene Mailserver machts mit und wertet den Versucht nicht als Spam.


MySql Performance steigern

Habe gerade noch einmal meine Bibliothek durchgeschaut und mir ist aufgefallen, das ich ein Buch nicht berücksichtigt habe: “High Performance MySql” lautet der Titel. Und der ist Programm!

Auf knapp 300 Seiten beschreiben die Autoren, wie MySql funktioniert. Denn das ist die Tuning-Grundlage - man muss wissen, wie MySql tickt, um es optimieren zu können.

Dabei wird nicht nur Query-Optimierung besprochen, sondern auch Replikation (Master/Slave Setup), Backup, Recovery und Lastverteilung (Clustering). Besonders das Thema “Benchmarking” hat mir sehr weitergeholfen, mit Tools meine Anwendungen zu verbessern.

Den kompletten Artikel lesen »


Zwischen SSL und ‘normalem’ HTTP hin- und herschalten

Via PHP Adventskalender von Chris Shiflett, Tag 4. Heute hat Chris mal wieder ein sehr interessantes Türchen in seinem Adventskalender aufgemacht: Herausgehüpft ist der Neuseeländer James McGlinn.

Er erinnert uns daran, SSL nur dann zu verwenden, wenn es um die Übetragung von privaten Daten geht - z.B. im Onlineshop oder beim Login. Für “normale” Webseiten benötigt man kein SSL.

Wer eine Seite mit SSL Zertifikat betreibt, weiß, dass diese ganze SSL Maschine ziemlich viel Serverleistung frisst. Warum also Performance verschwenden, wenn man nicht muss? Im Juni gabs einen Artikel vom PHP Blogger zum Thema “SSL erwzingen“, aber James geht noch weiter:

Den kompletten Artikel lesen »


Performance durch PHP Benchmarks

Wer gerne detailiert Auskunft über bestimmte PHP Operationen haben möchte, sollte mal bei den PHP Benchmarks vorbeischauen.

Dort bekommt man eine spitzen Übersicht und kann schnell entscheiden, welche Funktion für welche Operation am besten geeignet ist. Oft machen Funktionen bei großen Datenmengen schlapp und umgekehrt sind andere Funktionen dafür prädestiniert. Welche - das wird auf der Website verraten.

Zu jedem Problemfall gibt es einen ausführlichen Artikel, der den Testcode vorstellt und die Ergebnisse analysiert. Natürlich wird jedes Script mehrmals durchlaufen, um eine mittlere Ausführungszeit zu bestimmen.


Ältere Artikel »