dedlfix: richtiges Script

Beitrag lesen

echo $begrüßung;

generell würde ich Singe-Quotes statt Double Quotes benutzen:
Grund:
in Singe-Quotes wird nicht nach Variablen geparst.

Es ist durchaus ein Geschwindigkeitsunterschied messbar, doch der ist meist dermaßen gering, dass er nicht weiter ins Gewicht fällt. Erst bei Größenordnungen von ca. 7- oder 8-stelligen Schleifendurchläufen kommt man in einen spürbaren Bereich. Da man solche Schleifen nicht zum Spaß laufen lässt, entsteht dabei ja auch irgend ein Ergebnis, das weiterverarbeitet werden muss. Die dabei verbrauchte Zeit dürfte die Geschwindigkeitsdifferenz von ' zu " erheblich in den Schatten stellen. Das fällt also unter Mikrooptimierung.

Eventuell kann man auch folgende Anweisungungen in eine Packen:
$data[3] = str_replace("\r", "", $data[3]); // \r entfernen (Zeilenende)
$data[3] = str_replace("\n", "", $data[3]); // \n entfernen (Zeilenende)
Bin mir aber nicht sicher ob 1 Reg Ex schneller ist, als 2 str_replace.

Man kann bei str_replace() allen Parametern ein Array übergeben. Hier wäre es sinnvoll,

$data[3] = str_replace(array("\r", "\n"), "", $data[3]);

zu verwenden statt zweier Funktionsaufrufe oder über die Regexp-Maschinerie nachzudenken. Aber das ist ebenfalls nur Mikrooptimierung.

Ansonsten kannst du vielleicht noch nach performance tests schauen, ob z.B. explode schneller/langsamer als split ist. Beide Funktionen tun ja m.W. das selbe.

explode() verwendet einen feststehenden String als Trennzeichen, split() verwendet einen regulären Ausdruck. explode() dürfte schneller sein. Doch auch das ist Mikrooptimierung.

Erheblich mehr Rechenzeit lässt sich an den wirklichen Flaschenhälsen sparen, wozu man besser die Ausführungszeiten misst, damit man seinen Erfolg kontrollieren kann. Die Erfahrung sagt, dass das Zusammenfassen der Gibt-es-das-schon-Anfrage und der Einfüge-Anweisung zu einer Einfügen-mit-Unique-Key-Prüfung-Anweisung eine deutlich geringere Laufzeit haben wird. Siehe Vinzenz Antwort. Weiterhin kann hier der Einsatz von Prepared Statements zu einer Ersparnis auf Seiten des MySQL-Servers beitragen, denn dann muss dieser nicht ständig die INSERT-Anweisung neu parsen. Außerdem spart man sich das Zusammensetzen des Statements inklusive der Funktionsaufrufe zur kontextgerechten Behandlung der Werte.

echo "$verabschiedung $name";