Auch das ist sehr positiv zu sehen.
Aber es gibt bei der Fraktion immer die gleichen Heinis die sich bereits früher meist mit negativen Kommentaren zu Ergebnissen zu Wort gemeldet haben, ja auch versuche etwas nachzuvollziehn aber zu keinem Ergebnis kommen.
Zitat:
Der Benchmark von GMoS Tews hätte mich mal interessiert. Denn wenn ich das in einem PHP Script teste, stelle ich da nur einen einen Performance-Unterschied von durchschnittlich ca. 1% fest - wenn die Datei existiert. Und dabei wechselt der Gewinner ständig.
Wenn die Datei nicht existiert, liegt filemtime() im Durchschnitt mit ca. 10% hinter den beiden Funktionen is_file() und file_exists() zurück. Ich wüsste echt gerne wie der auf diese Zahlen kommt.
Man misst die Erfolge einer Optimierung unter lokaler Last.
Das bedeutet - man befeuert ein Testscript eine Zeit lang mit virtuellen Usern.
Auf mich bezogen wird da Siege als Programm verwendet und zwar wie folgt:
siege -t10S -c100 http://localhost/cmsms/speedtest.php
Und damit auch ordentlich etwas passiert erfolgt der Test - hier in der speedtest.php in einer Schleife wo das alles 10.000 mal aufgerufen wird.
Beispiel:
Beispiel:
<?php
$i=0;
while ($i<10000)
{
$ok=filemtime('index.php');
$i++;
}
Die Ergebnisse des Siege - Laufes sind die welche interessieren.
Nehmen wir das Beispiel des Moderators der mal wieder nichts versteht.
Die Ergebnisse:
file_exists
siege -t10S -c100 http://localhost/cmsms/speedtest.php
** SIEGE 3.0.5
** Preparing 100 concurrent users for battle.
The server is now under siege...
Lifting the server siege... done.
Transactions: 1120 hits
Availability: 100.00 %
Elapsed time: 9.28 secs
Data transferred: 0.00 MB
Response time: 0.30 secs
Transaction rate: 120.69 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 36.60
Successful transactions: 1120
Failed transactions: 0
Longest transaction: 0.56
Shortest transaction: 0.02
is_file
siege -t10S -c100 http://localhost/cmsms/speedtest.php
** SIEGE 3.0.5
** Preparing 100 concurrent users for battle.
The server is now under siege...
Lifting the server siege... done.
Transactions: 1892 hits
Availability: 100.00 %
Elapsed time: 9.88 secs
Data transferred: 0.00 MB
Response time: 0.03 secs
Transaction rate: 191.50 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 5.54
Successful transactions: 1892
Failed transactions: 0
Longest transaction: 0.16
Shortest transaction: 0.00
filemtime
siege -t10S -c100 http://localhost/cmsms/speedtest.php
** SIEGE 3.0.5
** Preparing 100 concurrent users for battle.
The server is now under siege...
Lifting the server siege... done.
Transactions: 1700 hits
Availability: 100.00 %
Elapsed time: 9.01 secs
Data transferred: 0.00 MB
Response time: 0.03 secs
Transaction rate: 188.68 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 5.89
Successful transactions: 1700
Failed transactions: 0
Longest transaction: 0.16
Shortest transaction: 0.00
Die Ergebnisse sprechen für sich und entsprechen auch den Ergebnissen die ich für PowerCms vor einigen Jahren ermittelt und umgesetzt habe.
Entscheidend sind beim Test immer die Anzahl der Transactions pro Sekunde - je mehr ausgeführt werden können desto besser.
Wir haben hier also bei der Erkennung der Leistung immer damit zu tun das wir dynamisch testen müssen.
Es nützt rein nichts etwas in einer Schleife laufen zu lassen und dann über eine Start - und Endzeit die Laufzeit zu berechnen.
Entscheidend ist immer - wie verhält es sich wenn eine Anzahl von Besuchern auf eine Seite zugreifen - also unter Last.
Bei dem Moderator ,der das nicht kapierte, haben wir es genau mit dem Typ zu tun der aus simplen Unverständnis auch in der Vergangenheit so manche Optimierungen zerredet hat.
Eine Anzahl anderer Cmsms Anwender die noch weniger verstehen - weil sie grundsätzlich von der Programmierung und Technik keine Ahnung haben - heulten dann immer mit dem Leitwolf und schon war so etwas bereits unten durch.
Bei Cmsmadesimple stellt sich unverändert seit über 10 Jahren die Frage ob die Entwickler irgend etwas übernehmen werden.
Die Leute die heute in der deutschen Fraktion da herum testen waren immer genau die, welche stets der Meinung waren, das es sinnlos ist Verbesserungen einzuführen, weil die Entwickler davon nichts annehmen und beim nächsten Update eigene Änderungen futsch sind.
Nachtrag:
Messungen wenn eine Datei nicht existiert:
<?php
$i=0;
while ($i<10000)
{
$ok=file_exists('indexos.php');
$i++;
}
file_exists
siege -t10S -c100 http://localhost/cmsms/speedtest.php
** SIEGE 3.0.5
** Preparing 100 concurrent users for battle.
The server is now under siege...
Lifting the server siege... done.
Transactions: 1268 hits
Availability: 100.00 %
Elapsed time: 9.60 secs
Data transferred: 0.00 MB
Response time: 0.24 secs
Transaction rate: 132.08 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 31.48
Successful transactions: 1268
Failed transactions: 0
Longest transaction: 0.59
Shortest transaction: 0.02
is_file
siege -t10S -c100 http://localhost/cmsms/speedtest.php
** SIEGE 3.0.5
** Preparing 100 concurrent users for battle.
The server is now under siege...
Lifting the server siege... done.
Transactions: 1772 hits
Availability: 100.00 %
Elapsed time: 9.82 secs
Data transferred: 0.00 MB
Response time: 0.05 secs
Transaction rate: 180.45 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 9.07
Successful transactions: 1772
Failed transactions: 0
Longest transaction: 0.28
Shortest transaction: 0.01
filemtime
siege -t10S -c100 http://localhost/cmsms/speedtest.php
** SIEGE 3.0.5
** Preparing 100 concurrent users for battle.
The server is now under siege...
Lifting the server siege... done.
Transactions: 25 hits
Availability: 100.00 %
Elapsed time: 9.96 secs
Data transferred: 2.07 MB
Response time: 4.03 secs
Transaction rate: 2.51 trans/sec
Throughput: 0.21 MB/sec
Concurrency: 10.11
Successful transactions: 25
Failed transactions: 0
Longest transaction: 9.46
Shortest transaction: 0.00
Auch hier sind die Differenzen gewaltig.
Man muss aber beachten das file_exists auch über Wrapper auf URL's zugreifen kann während is_file rein lokal arbeitet.
Bevor man also file_exists in is_file ändert muss man wissen ob das Sinn macht.
Keine Kommentare:
Kommentar veröffentlichen