Ich beziehe mich da auf die kommende Cmsmadesimple V 2.
Beispiel nur mal aus der index.php
Code:
$orig_memory = (function_exists('memory_get_usage')?memory_get_usage():0);
Aber laut PHP:
| 5.2.1 | Compiling with --enable-memory-limit is no longer required for this function to exist. |
Was also hat das in dieser Form noch im neuesten Code zu suchen ?
Es reicht wenn man es so schreiben würde:
$orig_memory = memory_get_usage();
Die Unterschiede in der Leistung sind deutlich sichtbar und das obwohl ohne debug diese Abfrage nur 1x realisiert wird.
Apache Benchmark - Original
sudo /etc/init.d/apache2 restart
[ ok ] Restarting apache2 (via systemctl): apache2.service.
ab -kc 100 -t 30 http://localhost/cmsms/
This is ApacheBench, Version 2.3 <$Revision: 1604373 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
Finished 1413 requests
Server Software: Apache/2.4.10
Server Hostname: localhost
Server Port: 80
Document Path: /cmsms/
Document Length: 19767 bytes
Concurrency Level: 100
Time taken for tests: 30.004 seconds
Complete requests: 1413
Failed requests: 0
Non-2xx responses: 1417
Keep-Alive requests: 0
Total transferred: 28624817 bytes
HTML transferred: 28009839 bytes
Requests per second: 47.09 [#/sec] (mean)
Time per request: 2123.442 [ms] (mean)
Time per request: 21.234 [ms] (mean, across all concurrent requests)
Transfer rate: 931.67 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 1.7 0 9
Processing: 311 2040 426.0 2062 3786
Waiting: 304 1982 412.9 2009 3631
Total: 315 2041 425.0 2062 3786
Percentage of the requests served within a certain time (ms)
50% 2062
66% 2185
75% 2260
80% 2320
90% 2492
95% 2635
98% 2855
99% 3005
100% 3786 (longest request)
optimiert
sudo /etc/init.d/apache2 restart
[ ok ] Restarting apache2 (via systemctl): apache2.service.
czarnowski@Cz1:~$ sudo /etc/init.d/apache2 restart
[ ok ] Restarting apache2 (via systemctl): apache2.service.
czarnowski@Cz1:~$ ab -kc 100 -t 30 http://localhost/cmsms/
This is ApacheBench, Version 2.3 <$Revision: 1604373 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
Finished 1482 requests
Server Software: Apache/2.4.10
Server Hostname: localhost
Server Port: 80
Document Path: /cmsms/
Document Length: 19767 bytes
Concurrency Level: 100
Time taken for tests: 30.024 seconds
Complete requests: 1482
Failed requests: 0
Non-2xx responses: 1490
Keep-Alive requests: 0
Total transferred: 30099490 bytes
HTML transferred: 29452830 bytes
Requests per second: 49.36 [#/sec] (mean)
Time per request: 2025.903 [ms] (mean)
Time per request: 20.259 [ms] (mean, across all concurrent requests)
Transfer rate: 979.02 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.5 0 2
Processing: 230 1950 395.5 1959 2916
Waiting: 224 1893 381.7 1903 2848
Total: 233 1950 395.2 1959 2916
Percentage of the requests served within a certain time (ms)
50% 1959
66% 2098
75% 2192
80% 2243
90% 2399
95% 2524
98% 2654
99% 2732
100% 2916 (longest request)
Die Differenz ist für diese eine aktive Stelle sehr hoch.
Dennoch zeigt der Benchmark auch etwas anderes mehr als deutlich - Cmsmadesimple ist auch in der Version 2 nicht dafür geeignet eine Anzahl von 100 Besuchern gleichzeitig bedienen zu können.
Die Gründe
- sehr viele Programmteile sind nicht professionell ausgeführt
- Die Gesamtkonzeption ist an entscheidenden Stellen absolut ungeeignet für performante Ausführung
- es werden ungeeignete Fremdlibs verwendet
Und damit ist dieses CMS praktisch zu nichts zu gebrauchen - es sei denn man hat 5 Besucher in der Stunde und auch die könnten wegen Langsamkeit noch weg laufen.
Andere CMS legen da eine ganz andere Leistung vor - hier als Beispiel PowerCMS in der aktuellen Entwicklerversion:
ab -kc 100 -t 30 http://localhost/powercms/
This is ApacheBench, Version 2.3 <$Revision: 1604373 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
Completed 5000 requests
Completed 10000 requests
Completed 15000 requests
Completed 20000 requests
Completed 25000 requests
Completed 30000 requests
Completed 35000 requests
Completed 40000 requests
Completed 45000 requests
Completed 50000 requests
Finished 50000 requests
Server Software: Apache/2.4.10
Server Hostname: localhost
Server Port: 80
Document Path: /powercms/
Document Length: 24053 bytes
Concurrency Level: 100
Time taken for tests: 12.784 seconds
Complete requests: 50000
Failed requests: 0
Keep-Alive requests: 0
Total transferred: 1220950000 bytes
HTML transferred: 1202650000 bytes
Requests per second: 3911.07 [#/sec] (mean)
Time per request: 25.568 [ms] (mean)
Time per request: 0.256 [ms] (mean, across all concurrent requests)
Transfer rate: 93266.06 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.3 0 8
Processing: 1 25 38.7 21 451
Waiting: 0 24 37.0 20 449
Total: 1 26 38.7 21 451
Percentage of the requests served within a certain time (ms)
50% 21
66% 23
75% 24
80% 25
90% 33
95% 112
98% 179
99% 207
100% 451 (longest request)
Da liegen Welten dazwischen.
Keine Kommentare:
Kommentar veröffentlichen