Archiv der Kategorie: Performance

Best-of-the-Web 12

Neue Linkwelle, gab ja so einige spannende Sachen seit der letzten…

Den ganzen Post lesen
Veröffentlicht unter php, Javascript, Performance, Best of the Web, webdev | Hinterlasse einen Kommentar

Parallel processing in PHP

Since PHP does not offer native threads, we have to get creative to do parallel processing. I will introduce 3 fundamentally different concepts to emulate multithreading as good as possible.

Using systemcalls

If you have some basic linux knowledge, you will know that a background process can be started by adding ampersand to the systemcall (in Windows, it’s the start-command)

dav@david:/var/www$ php index.php &
[1] 3229

The PHP script is running silently in the background. What is being printed to the shell (3229) is the process id, so that we are able to kill the process using

kill 3229

A problem with this approach is, that any output of the script is lost, so we have to redirect the output stream to a file, just like this:

php index.php
Den ganzen Post lesen

Veröffentlicht unter php, Performance, webdev, Linux | 19 Kommentare

Lasst die Datenbank ihren Job machen!

Oft schau ich mir Code an und sehe, dass Leute offenbar zu faul für vernünftige SQL-Statements sind. Da wird eine extrem allgemein gehaltene Abfrage auf die Datenbank losgelassen, um dann im Nachklang mit PHP zu filtern / zu gruppieren. Warum? Die Datenbank ist doch zum rechnen und für genau so Aufgaben gedacht. Zudem ists auch noch viel performanter, die Datenbank einfach ihren Job erledigen zu lassen. Vielleicht programmieren gewisse Leute einfach viel zu gern PHP, als das sie sich von der Datenbank die Arbeit abnehmen lassen würden?

Berechnungen im SELECT

SELECT price FROM product

while ($row = $sql->fetch())
{
    print $row['price'] * 1.95583;
}

Warum nicht einfach:

SELECT price*1.95583 AS europreis FROM product

Okay, jetzt nicht das beste Beispiel aber prinzipiell läuft einem sowas öfter über den Weg.… Den ganzen Post lesen

Veröffentlicht unter php, Datenbanken, Software Engineering, Performance, webdev | 6 Kommentare

Best-of-the-Web 3

Und wiedermal gibts das – meiner Meinung nach – spannendste aus der Blogwelt der letzten Zeit.

Den ganzen Post lesen
Veröffentlicht unter php, Datenbanken, Performance, Best of the Web, webdev | Hinterlasse einen Kommentar

Der Einfluss von Cookies auf die Performance einer Webseite

Cookies werden oft missachtet, wenn es um die Optimierung einer Webseite hinsichtlich Performance geht – zu unrecht! Das wunderbare YSlow von Yahoo zum Beispiel hat einen Test eingebaut, der genau darauf abzielt. In den Performance Grundsätzen dazu heißt die Leitregel Use Cookie-free Domains for Components.

Das Problem

Cookies können erstmal in beliebiger Anzahl und ziemlicher Größe auf Clientseite abgelegt werden. Das Setzen von Cookies geht sowohl mittels Javascript wie auch von der Serverseite aus, bspw. mit PHP. Womit der Cookie gesetzt wird, ist letztendlich egal. Der Effekt auf das Ladeverhalten der Webseite ist in jedem Fall, dass bei jedem HTTP-Request vom Client aus alle Cookies im Anfrage-Header mit übermittelt werden.… Den ganzen Post lesen

Veröffentlicht unter php, Javascript, Performance, webdev | 2 Kommentare

Über ORM

ORM ist an sich eine feine Sache. Durch die zusätzliche Abstraktionsschicht ist man so gut wie vollkommen datenbankunabhängig. Weiterhin hat man einen sauberen OOP Ansatz duchgehend im Projekt ohne hässliche SQL Statements dazwischengemischt zu haben. Es fühlt sich sehr „smooth“ an und steigert – richtig gemacht – auch durchaus die Verständlichkeit des Codes.

Trotzdem bin ich nicht in allen Belangen großer Freund von ORM. Neulich hatte ich mit einer Tabelle zu tun, in der mehrere Millionen Tupel enthalten waren. Ein falsch platzierter Index oder der kleinste Fehler bei der Formulierung der Query führt dazu, dass man mehrere Minuten auf das Ergebnis der Abfrage warten darf.… Den ganzen Post lesen

Veröffentlicht unter Datenbanken, Software Engineering, Performance, webdev | 3 Kommentare

Web-Performance: Best Practices

Was folgt ist eine Mischung aus der sehr guten (!) Artikelserie „Make the web faster“ von google und einigen persönlichen Ergänzungen und Erfahrungen. Erhebt keinerlei Anspruch auf Vollständigkeit und mischt server- sowie clientseitige Tipps querbeet. Ich gehe hier nicht besonders ins Detail, nenne aber genug Stichwörter, zu denen man sich dann schlaugooglen kann. Als Abschluss der Einleitung möchte ich noch auf den Gott der Webperformance verweisen, ohne dessen Bücher und Analysen wir sicher noch nicht da wären wo wir heute sind.

  1. Javascript so weit wie es geht asynchron laden bzw. ans Seitenende befördern, da Browser JS-Dateien in der Regel nicht parallel laden.
Den ganzen Post lesen
Veröffentlicht unter php, Javascript, Datenbanken, Performance, Security, Quicktips, webdev | 1 Kommentar

Tricks mit .htaccess

.htaccess – Dateien sind kleine Webserver-Konfigurationsdateien, die einige sehr nützliche Features mitbringen. Auf die meiner Meinung nach nützlichsten Tricks und Kniffe mit dieser Datei gehe ich in dieser Kurzabhandlung ein.

1) .htaccess erstellen

Das erste Problem kommt postwendend: Wie erstellt man eine .htaccess-Datei? Da Windows keine Dateinamen zulässt, die mit einem Punkt beginnen, hat man 2 Möglichkeiten: Entweder man erstellt die Datei unter htaccess.txt, lädt sie auf den FTP-Server und benennt sie da erst in .htaccess um, oder man verwendet einen „besseren“ Texteditor wie Notepad++, erstellt ein neues Dokument und speichert dieses unter .htaccess, was dann komischerweise auch von Windows toleriert wird.… Den ganzen Post lesen

Veröffentlicht unter php, Performance, Security, webdev | 4 Kommentare