Zitat:
"Funktionitis" beschreibt eine Erkrankung, die grundsätzlich alle Teile des Systems befallen kann, und zeichnet sich insbesondere dadurch aus, dass einfache Dinge klammheimlich durch komplexe, aber weitestgehend sinnbefreite Funktionen ersetzt werden, ganz nach dem Motto "Warum einfach, wenn es auch umständlich geht".
Und er hat Recht damit.
Mal ein eigenes Beispiel aus dem Cmsmadesimple Fundus diese Funktion hier:
function cms_join_path() {
$args = func_get_args();
return implode(DIRECTORY_SEPARATOR, $args);
}
In der aktuellen V2 Beta taucht sie 118 mal auf.
Mit folgendem Testscript und dem Apache Benchmark testen wir mal dieses Script:
<?php
$config['root_path']=dirname(__FILE__);
function cms_join_path() {
$args = func_get_args();
return implode(DIRECTORY_SEPARATOR, $args);
}
echo cms_join_path($config['root_path'], 'lib', 'assets', 'templates');
#echo implode(DIRECTORY_SEPARATOR,array($config['root_path'], 'lib', 'assets', 'templates'));
?>
Beim ersten Durchlauf rufen wir die Funktion auf, beim zweiten wechseln wir die Auskommentierung und rufen die eigentliche Musik direkt auf.
Der Unterschied ist vorzeigbar.
Original liefert
Requests per second: 7094.56 [#/sec] (mean)
Time per request: 14.095 [ms] (mean)
Time per request: 0.141 [ms] (mean, across all concurrent requests)
Transfer rate: 1680.61 [Kbytes/sec] received
die bessere Art liefert
Requests per second: 7657.94 [#/sec] (mean)
Time per request: 13.058 [ms] (mean)
Time per request: 0.131 [ms] (mean, across all concurrent requests)
Die bessere Variante schafft fast 600 Request's mehr als das Original.
Tatsache ist das die DE Fraktion Recht hat - so etwas in der Art gibt es zahlreich im Quellcode.
Von Performanceprogrammierung haben die Dev's von Cmsmadesimple keine Ahnung.
Wahrscheinlich nimmt sich auch rein niemand die paar Momente Zeit um mal Benchmarks zu fahren.
Keine Kommentare:
Kommentar veröffentlichen