Gunther: + (PHP) Benchmark Ergebnisse

Beitrag lesen

Hallo Selfer/innen!

Erstmal meinen besten Dank für die fachlich (wie hier eigentlich immer) sehr kompente und auch (für mich) verständliche Hilfe.

Aufgrund des Postings von Sven und der zusätzlichen Erklärung von dedlfix, habe ich mal die Benchmarks für die zwei folgenden Varianten ermittelt:

Variante 1:

  
<?php  
$config = parse_ini_file('php_test.ini');  
var_dump($config);  
?>  

Variante 2:

  
<?php  
include('config_file.php');  
var_dump($config);  
?>  

Wobei ich als INI-Datei meine php.ini auf dem Server verwendet habe. Die Datei 'config_file.php' ist eine automatisch generierte Datei aus dieser INI-Datei, die einfach die Definition des Arrays $config enthält.

Ich habe ab mit jeweils 10.000 Requests mehrmals ausgeführt, da immer leichte Schwankungen auftreten, aber die nachfolgenden Ergebnisse repräsentieren das durchschnittliche Ergebnis:

----------------------------------------------------------------------------------------------
Variante 1 (parse_ini_file):
Finished 10000 requests

Server Software:        Apache
Server Port:            80

Document Path:          /benchm1.php
Document Length:        6570 bytes

Concurrency Level:      1
Time taken for tests:   13.888 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      67800000 bytes
HTML transferred:       65700000 bytes
Requests per second:    720.03 [#/sec] (mean)
Time per request:       1.389 [ms] (mean)
Time per request:       1.389 [ms] (mean, across all concurrent requests)
Transfer rate:          4767.42 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.3      0       4
Processing:     0    1   2.0      0      40
Waiting:        0    1   1.9      0      40
Total:          0    1   2.0      0      40

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      4
  80%      4
  90%      4
  95%      4
  98%      4
  99%      4
 100%     40 (longest request)

----------------------------------------------------------------------------------------------
Variante 2 (include):
Finished 10000 requests

Server Software:        Apache
Server Port:            80

Document Path:          /benchm2.php
Document Length:        6570 bytes

Concurrency Level:      1
Time taken for tests:   9.204 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      67800000 bytes
HTML transferred:       65700000 bytes
Requests per second:    1086.47 [#/sec] (mean)
Time per request:       0.920 [ms] (mean)
Time per request:       0.920 [ms] (mean, across all concurrent requests)
Transfer rate:          7193.60 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.3      0       4
Processing:     0    1   1.7      0      12
Waiting:        0    1   1.6      0      12
Total:          0    1   1.7      0      12

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      0
  80%      4
  90%      4
  95%      4
  98%      4
  99%      4
 100%     12 (longest request)

----------------------------------------------------------------------------------------------

Auch wenn das Ergebnis imho zeigt, dass für "normal" besuchte Sites beide Methoden durchaus praktikabel sind, so wird doch auch ganz klar deutlich, dass die Include-Variante im Schnitt etwa um ein Drittel schneller ist.

Vielen Dank nochmal an Alle, die mir wieder ein Stückchen weiter geholfen haben, was meine Kenntnisse und mein Wissen im Bezug auf PHP und Programmiertechnik anbelangt!

Gruß Gunther