Quantcast
Channel: codeJuice
Viewing all articles
Browse latest Browse all 5

PHP Performance – Ausgabefunktionen

$
0
0

Jeder kennt und nutzt sie: Ausgabefunktionen – ob echo, print, printf oder sprintf. Nicht nur auf großen sondern auch Daten-intensiven Webseiten werden sie stetig genutzt.
Insbesondere bei größere Anzahl von Seitenaufrufen oder großen Anzahl von Ausgaben (bspw. lange Datentabellen) kann die richtige Ausgabefunktion Ladezeit einsparen. Daher habe ich im folgenden verschiedene Ausgabefunktionen getestet und dazu eine Auswertung erstellt.

Ausgabefunktionen echo, print, printf, sprintf

Hierzu wurden folgende Ausgabefunktionen in PHP geprüft:

  • echo
  • print
  • printf
  • sprintf

Performance – Ablauf

Schleifendurchlauf
Die einzelnen Testläufe werden per while-Schleife durchgeführt mit jeweils zehn (10) Durchgängen (=n*10) um eventuelle Schwankungen auszugleichen.

Auswertung
Die in den Reports angegeben Tabellen zeigen die SUM, Prozentuale Abweichung vom MIN()-Wert sowie die einzelnen MIN&MAX, AVG σ (Standardabweichung).
Sollte es also größere Ausreißer geben würde die σ dies aufzeigen.

Fragestellung und Fazit
Durch diesen Test soll geprüft werden wie sich die verschiedenen Ausgabefunktion auf die Ladezeiten auswirken.

Performance-Check mit mehren Durchgängen

Die verschiedenen Durchläufe (n) werden wie bereits oben genannt jeweils mit 10 Durchgängen (n*10) durchgeführt:

  • 100,000
  • 1,000,000 (1. Mio)
  • 10,000,000 (10 Mio.)

Testergebnisse

PHP Performance – Ausgabefunktionen (echo, print, printf, sprintf)

Das Resultat zeigt deutlich auf dass die Ausgabefunktion echo() die performativste Lösung ist. Die print() Funktion ist zwischen  0.5%-6% langsamer, wobei sie nur bei längerern Durchläufen punkten konnte. printf() und sprintf() waren wesentlich langsam. printf() lag dabei Teilweise über 50% zurück – bei steigenden Durchläufen (n) sinkt der Unterschied aber auf 12-15% bei beiden.

Testergebnisse

1.echo
Die Variante “echo” ist die schnellste Variante mit deutlichen Vorsprung.
Bei 1. Millionen aufrufen mit 10 Durchgängen benötigt sie 4.31 Sekunden.

2. print
2%-6%(0,55% Ausreißer) langsamer – wird aber selten genutzt

3. sprintf
Sehr stark schwankende Werte zwischen 9%-23% generell.

4. printf
Wesentlich langsamer (53%-55%) insbesondere bei wenig Durchläufen. Bei vielen Durchläufen sinkt der Unterschied.

Tabelle

method / n100,0001,000,000 (1 Mio.)10,000,000 (10 Mio.)100,000,000 (100 Mio.)
Link
(ausführlicher Report)
ReportReportReportReport
echo0.00% (0.48)0.00% (4.31)0.00% (123.59)0.00% (1,352.73)
print+6.23% (0.51)+5.94% (4.56)+2.27% (126.40)+0.64% (1,361.33)
printf+55.43% (0.75)+53.35% (6.61)+17.86% (145.67)+15.55% (1,563.12)
sprintf9.62% (0.53)+23.15% (0.80451)+13.13% (139.82)+12.30% (1,519.14)

Der Artikel PHP Performance – Ausgabefunktionen erschien zuerst auf codeJuice.


Viewing all articles
Browse latest Browse all 5