/dev/joschi: Wirrer Geist, wirre Texte

PHP Benchmark (Upd.)

Benchmark Diagramm

Sebastian Bergmann hat in seinem Blog vor einer Weile einen Benchmark über die Performance von PHP 4.3.11, PHP 5.0.4 und der damaligen Entwicklerversion von PHP 5.1 veröffentlicht. Da PHP 5.1 mittlerweile schon in Version 5.1.2 vorliegt und es auch in der 4er Reihe in paar Updates gab, hab ich die Benchmarks erneut durchgeführt. Wie Sebastian habe ich das Skript aus dem CVS von php.net herangezogen.
Die reinen Zahlen sind sicherlich nicht sonderlich aussagekräftig, das Verhältnis der Ausführungsgeschwindigkeiten von PHP 5.1.2 gegenüber PHP 4.4.2 und PHP 5.0.5 ist jedoch beachtlich. Zwar werden die 400% Geschwindigkeitssteigerung aus Sebastians Benchmark nicht erreicht, allerdings war PHP 5.1.2 (egal mit welchem Execution Model) bei den durchgeführten Tests mehr als doppelt so schnell wie PHP 4.4.2 und 5.0.5.
Zwischen den verschiedenen Dispatch Methoden (CALL, GOTO und SWITCH) gibt es jedoch keine großartigen Unterschiede. Die paar Millisekunden Abweichung sind wohl auf Meßungenauigkeit zurückzuführen.

UPDATE: Und wie es der Zufall so will, hat Sebastian Bergmann seinen Benchmark heute aktualisiert. Der Schwerpunkt liegt allerdings im Unterschied verschiedener GCC Versionen (GCC 3.4.5, GCC 4.0.2 und GCC 4.1.0.) anstatt verschiedener PHP Versionen.
AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ / 512 KB Cache / 1024 MB RAM
Linux x86_64 2.6.14-gentoo-r2
gcc version 3.4.5 (Gentoo 3.4.5, ssp-3.4.5-1.0, pie-8.7.9)

CFLAGS="-O2 -march=k8 -pipe"
./configure --disable-cgi --disable-all

PHP 4.4.2
  simple             1.128
  simplecall         0.681
  simpleucall        0.919
  simpleudcall       1.029
  mandel             4.399
  mandel2            4.961
  ackermann(7)       1.674
  ary(50000)         0.151
  ary2(50000)        0.119
  ary3(2000)         2.164
  fibo(30)           2.733
  hash(50000)        0.188
  hash2(500)         0.319
  heapsort(20000)    0.881
  matrix(20)         0.821
  nestedloop(12)     1.858
  sieve(30)          0.852
  strcat(200000)     0.095
  ------------------------
  Total             24.971

PHP 5.0.5
  simple             1.037
  simplecall         0.693
  simpleucall        0.917
  simpleudcall       0.996
  mandel             3.680
  mandel2            4.064
  ackermann(7)       1.408
  ary(50000)         0.139
  ary2(50000)        0.109
  ary3(2000)         2.120
  fibo(30)           2.567
  hash(50000)        0.169
  hash2(500)         0.324
  heapsort(20000)    0.840
  matrix(20)         0.821
  nestedloop(12)     1.537
  sieve(30)          0.882
  strcat(200000)     0.095
  ------------------------
  Total             22.397

PHP 5.1.2 (CALL)
  simple             0.384
  simplecall         0.382
  simpleucall        0.531
  simpleudcall       0.627
  mandel             1.118
  mandel2            1.321
  ackermann(7)       0.944
  ary(50000)         0.101
  ary2(50000)        0.079
  ary3(2000)         1.013
  fibo(30)           1.591
  hash(50000)        0.122
  hash2(500)         0.095
  heapsort(20000)    0.325
  matrix(20)         0.299
  nestedloop(12)     0.672
  sieve(30)          0.476
  strcat(200000)     0.049
  ------------------------
  Total             10.128

PHP 5.1.2 (GOTO)
  simple             0.386
  simplecall         0.384
  simpleucall        0.528
  simpleudcall       0.625
  mandel             1.125
  mandel2            1.324
  ackermann(7)       0.972
  ary(50000)         0.100
  ary2(50000)        0.080
  ary3(2000)         1.003
  fibo(30)           1.587
  hash(50000)        0.122
  hash2(500)         0.095
  heapsort(20000)    0.327
  matrix(20)         0.297
  nestedloop(12)     0.665
  sieve(30)          0.478
  strcat(200000)     0.050
  ------------------------
  Total             10.146

PHP 5.1.2 (SWITCH)
  simple             0.384
  simplecall         0.383
  simpleucall        0.529
  simpleudcall       0.631
  mandel             1.118
  mandel2            1.319
  ackermann(7)       0.963
  ary(50000)         0.099
  ary2(50000)        0.080
  ary3(2000)         1.056
  fibo(30)           1.593
  hash(50000)        0.121
  hash2(500)         0.094
  heapsort(20000)    0.329
  matrix(20)         0.294
  nestedloop(12)     0.670
  sieve(30)          0.471
  strcat(200000)     0.049
  ------------------------
  Total             10.185
  • No comments

Standard emoticons like :-) and ;-) are converted to images.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

Trackbacks / Pingbacks

  • No Trackbacks