PHP-Optimierung beim Zerlegen von Strings
  • Software
  • Services
  • Marketing
  • Downloads
  • Reseller
  • Support
  • Referenzen
0 Kommentare
Die aktuelle Seite ist nicht im PDF-Format verfügbar.
Fügen Sie diese Seite Ihrem persönlichen Merkzettel hinzu.
Zur aktuellen Seite ist leider kein Video verfügbar.
  1. Mein Merkzettel
  1. Live-Suche


Exakter Ausdruck
Alle Wörter
Eines der Wörter
  • Weitere Optionen
  • Optionen ausblenden
  1. Mein Account

Account-Login

eMail-Adresse:

Passwort:

Sitzung speichern
  • Passwort vergessen
  • Kostenloses Account
  • Home
  • Services
  • PHP
  • PHP-Optimierung
  • Benchmarks & Tipps
  • Strings zerlegen
PHP-Optimierung beim Zerlegen von Strings

Optimierung durch Zerlegen von Strings mit explode()

Soll ein String anhand eines Teilstrings zerlegt und die einzelnen Teilstücke in einem Array gespeichert werden, sind die gängigsten verwendeten PHP-Funktionen split(), preg_split() und explode(). Da split() und preg_split() im Gegensatz zu explode() mit regulären Ausdrücken arbeiten, ist zu erwarten, dass explode() die schnellste Variante ist.
Das Beispiel-Script mit split() ist nur der Vollständigkeit halber aufgeführt. Seit PHP Version 5.3 gilt split() als veraltet und hat in PHP-Scripten im Februar 2012 nichts mehr zu suchen.

String mit 10 Zeichen zerlegen mit split()

Code:
<?
$teilstring="f";
$gesamtstring="abcdefghijk";
for ($i=0;$i<10000;$i++){
$test=split($teilstring,$gesamtstring);
}
?>

Erläuterung:
Der String abcdefghijk wird anhand des Delimiters f in zwei Teile zerlegt. Das Zerlegen erfolgt mit split() innerhalb einer Schleife mit 10.000 Durchläufen.

String mit 10 Zeichen zerlegen mit preg_split()

Code:
<?
$teilstring="f";
$gesamtstring="abcdefghijk";
for ($i=0;$i<10000;$i++){
$test=preg_split("/".$teilstring."/",$gesamtstring);
}
?>

Erläuterung:
Im zweiten Beispiel-Script erfolgt die Zerlegung des Strings mit preg_split(().

String mit 10 Zeichen zerlegen mit explode()

Code:
<?
$teilstring="f";
$gesamtstring="abcdefghijk";
for ($i=0;$i<10000;$i++){
$test=explode($teilstring,$gesamtstring);
}
?>

Erläuterung:
Im dritten Beispiel-Code wird der String mit der PHP-Funktion explode() zerlegt.

Ergebnis


Requests per second (RPS)Time per Request (TPR)Vergleich
String mit 10 Zeichen zerlegen mit split()36.24 [#/sec] (mean)27.594 [ms] (mean)
51.6%
34.0%
String mit 10 Zeichen zerlegen mit preg_split()23.91 [#/sec] (mean)41.828 [ms] (mean)
String mit 10 Zeichen zerlegen mit explode()52.37 [#/sec] (mean)19.094 [ms] (mean)
119.0%
54.4%

Das split() verwendende Beispiel-Script spart 34% der Ausführzeit des Codes mit preg_split() während der PHP-Code mit explode() mehr als doppelt so schnell ausgeführt wurde wie der Code mit preg_split().

Fazit

Wenn es um das einfache Zerlegen einer Zeichenkette anhand eines Teilstrings ohne Verwendung regulärer Ausdrücke geht, ist explode() die beste Wahl weil mit großem Abstand schnellste Variante. preg_split() ist in unserem Beispiel deutlich langsamer als split(), weil an split() ein einfacher String, an preg_split() ein regulärer Ausdruck übergeben wurde. Die vorzuziehende Variante, wenn beim Zerlegen reguläre Ausdrücke verwendet oder zusätzliche Parameter übergeben werden sollen ist aus eingangs genannten Gründen in jedem Fall preg_split().


Anmerkung:
Die Tests wurden mit dem Apache HTTP server benchmarking tool ab auf einem im Februar 2012 nicht mehr dem Stand der Technik entsprechenden Server durchgeführt. Die RPS und TPR der getesteten PHP-Scripte sollten auf einem im Produktiv-Einsatz befindlichen Webserver deutlich besser sein.

Nächster Tipp:
Strings durchsuchen vor dem Zerlegen
  • Home
  • Services
  • PHP
  • PHP-Optimierung
  • Benchmarks & Tipps
  • Strings zerlegen
Copyright © 2001-2012 Werbe-Markt.de. Alle Rechte vorbehalten.AGB | Impressum | Datenschutz | RSS-Feed