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

PHP Performance – Iteration: Berechnung oder Inkrementierung

$
0
0

Der Umgang sowie die Umsetzung von mathematischen Funktionen in PHP ist einfach gehalten und lässt sich auf verschiedene Weiße schnell realisieren. Im folgenden werden also verschiedene Iterationsmethoden vorgestellt und auf ihre Performance untersucht.

Die folgenden Iterationsmöglichkeiten wurden dabei geprüft:

  • Berechnungen ($n+1)
  • Post-Inkrement ($n++)
  • Pre-Inkrement (++$n)

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 aufzweigen.
Fragestellung und Fazit
Durch den Testlauf soll erkannt werden ob die Berechnung oder die Inkrementierung (Post/Pre) in großer Anzahl am performantesten (schnellsten) sind.

Performance-Check mit mehren Durchgängen

Hierbei wurden verschiedene Durchläufe (n) mit wie bereits oben genannt jeweils 10 Durchgängen (n*10) gemacht:

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

Testergebnisse

PHP Performance – Iteration

Das Resultat zeigt deutlich auf das die Iterationsvariante Inkrementierung (Post/Pre) generell schneller ist. Die oft genutzt Berechnungsmethode ($n+1) ist wesentlich länger (zwischen 10%-20%). Die performancestärkste Variante der Iteration ist die Pre-Iteration welche zwischen 17%-20% schneller ist als die Berechnungsmethode.

Testergebnisse

1. Pre-Inkrement
Schnellste Variante, Wert wird aber vor (!) dem Ausgeben erhöht.[/one_third]
2. Post-Inkrement
10%-14%(/20% Ausreißer) langsamer – aber am meisten verbreitet.[/one_third]
3. Berechnung
17%-20% langsamer als die Pre-Inkrement Methode. Nicht zu empfehlen bei vielen Datensätzen.

Tabelle
method / n100,0001,000,000 (1 Mio.)10,000,000 (10 Mio.)100,000,000 (100 Mio.)1,000,000,000 (1 Mrd.)
Link
(ausführlicher Report)
ReportReportReportReportReport
Calculation+20.75% (0.10073)+18.23% (0.95118)+17.28% (10.059)+18.37% (96.989)+17.67% (1,081.940)
Post-Iteration+19.36% (0.09957)+10.63% (0.89005)+12.43% (9.643)+12.67% (92.316)+13.48% (1,043.352)
Pre-Iteration0.00% (0.08342)0.00% (0.80451)0.00% (8.577)0.00% (81.998)0.00% (919.444)

Der Artikel PHP Performance – Iteration: Berechnung oder Inkrementierung erschien zuerst auf codeJuice.


Viewing all articles
Browse latest Browse all 5