Also manchmal gibt einem Google schon sehr sonderbare Tipps. So z.B. aktuell bei "
Let's make the web faster" bzw. um genauer zu sein bei "
PHP performance tips".
Eines der genannten Beispiele ist dies hier:
Don't copy variables for no reason.
BAD:
$description = $_POST['description'];
echo $description;
GOOD:
echo $_POST['description'];
Okay, es mag durchaus korrekt sein, dass man nicht unnötig Variablen kopieren soll. Aber dieses Beispiel ist wirklich der Abschuss und für Neulinge auch gefährlich. Alles was vom User kommt muss vorher geprüft werden und auf keinen Fall sollte es direkt ausgegeben werden. Ich glaube das ist mitunter eine der ersten Grundlagen, die man beim Programmieren lernt. Hoffentlich macht dies nun niemand nach, denn dies führt sicher zu Sicherheitslücken. Und wenn es ihnen wirklich um den Speicher geht, den andere in ihrem Code verschwenden: Vielleicht hätten sie dann auch mal zeigen sollen, dass man via unset() auch wieder den Speicher freigeben kann.
Von dem nächsten Beispiel wusste ich, dass es kommt, noch bevor ich den Artikel angeklickt habe.
Use single-quotes for strings.
BAD:
$output = "This is a plain string";
GOOD:
$output = 'This is a plain string';
BAD: $type = "mixed";
$output = "This is a $type string";
GOOD:
$type = 'mixed';
$output = 'This is a ' . $type .' string';
Es hält sich immer noch das Gerücht, dass '-Quotes um ein vielfaches schneller wären als "-Quotes. Dies mag vielliecht in anderen Sprachen der Fall sein, in PHP ist dies jedoch (leider?) nicht so. Zumindest nicht so sehr, dass es meiner Meinung nach relevant wäre.
Ich habe hier ein kleines Beispiel:
<?php
define(MAX,10000000);
echo "Loops: " . MAX . "\n";
$start = microtime(true);
for ($i=0; $i<MAX; $i++)
$output = "This is a plain string";
$end = microtime(true);
echo "Doublequote Time: " . ($end - $start) . "\n";
$start = microtime(true);
for ($i=0; $i<MAX; $i++)
$output = 'This is a plain string';
$end = microtime(true);
echo "Singlequote Time: " . ($end - $start) . "\n";
?>
Und hier jetzt mal ein paar Ergebnis:
1. Durchgang:
Doublequote Time: 3.42824196815
Singlequote Time: 3.39423298836
2. Durchgang:
Doublequote Time: 3.35443496704
Singlequote Time: 3.40606093407
3. Durchgang:
Doublequote Time: 3.36835217476
Singlequote Time: 3.3603811264
Diesen Test habe ich auf einem nicht besonders schnellen Desktoprechner gemacht mit einem PHP ohne Cache etc.
Das Ergebnis zeigt mir
im besten Fall einen Geschwindigkeitsvorteil von rund 0.03 Sekunden bei 10 Millionen Durchgängen. Einmal war es sogar mit " schneller. Es mag also sein, dass das einfache Anführungszeichen einen absolut minimalen Geschwindigkeitsvorteil bringt, aber sollte man dafür wirklich seinen Quellcode irgendwie überarbeiten? Die Zeit kann man wahrlich besser nutzen.
Einen vergleichbaren Test habe ich für den nächsten Tipp mit
print und
echo durchgeführt. Hierauf möchte ich nun nicht wirklich groß eingehen, denn Wiederholungen sind langweilig.

Es war ähnlich wie der Quotes-Test, jedoch lag
echo hier öfter vorne, wenn auch wieder nicht gravierend. Ich könnte wetten, dass die Ergebnisse der anderen Tipps den vorherigen wieder ähneln.
Worauf ich aber eigentlich hinaus möchte: Nehmt diese Tipps bitte nicht als Bibel und besteht darauf, nur weil es von Google kommt. Auch Google kann sich mal irren. Vor allem wenn man sich mal ansieht wieviele Seiten Google eigentlich mit PHP gemacht hat. Spontan ist mir nun gar keine eingefallen, aber
Radio hat mir dann
den Google-Store genannt. Die wohl wichtigste Seite im Google-Imperium.

Versucht lieber euere selbstgeschriebenen Funktionen zu optimieren, versucht es mal mit einem PHP-Cache oder nutzt z.B. mal Lighttpd anstatt Apache. Spielt damit herum und versucht selbst herauszufinden wie euere Applikationen schneller werden.