Benchmark CMSów i For za pomocą Xdebug
11 July 2008
Comments
Korzystając z Xdebug 2.0.0 BETA 5 postanowiłem zrobić nieduży benchmark popularnych skryptów. Pobrałem najnowsze wersje (w czasie wykonywania testu) podanych poniżej skryptów i mierzyłem:
- maksymalne zużycie pamięci (xdebug_peak_memory_usage)
- czas generowania strony (z xdebug_start_trace)
- dla każdego skryptu wygenerowałem logi profilera dla KcacheGrind/WinGrind. Za pomocą wspomnianej aplikacji wyeksportowałem dla każdego skryptu drzewo wywołań komponentów.
- testowano na Gentoo Linux, AMD64, PHP 5.1.2, MySQL 5.0.19, 512MB RAM
- skrypty galerii miały 2-3 kategorie i tyle samo zdjęć. Wszystkie skrypty były testowane przy zalogowanym adminie.
- Logi kcachegrind i logi z xdebug_start_trace do pobrania stąd
Wnioski
Przedstawione wyniki nie należy interpretować dosłownie – wyniki dotyczą pojedynczego wywołania na nieobciążonym serwerze i maszynie. Należy użyć jedynie jako wyniki pomocnicze w przypadku poszukiwania skalowalnych skryptów pod serwisy o dużym ruchu.- Fora dyskusyjne: wygrywa punBB, a phpBB łapie się na przyzwoite drugie miejsce. punBB jest bardzo dobrym skryptem i polecam go każdemu.
- CMSy: Mambo i Joomla to dość infantylne skrypty o wysokim uproszczeniu i zarazem ograniczeniu funkcjonalności. Uproszczenia tego typu na dobre nie wyszły. PHP-Fusion króluje od niepamiętnych czasów benchmarków Biblioteki, polskie projekty ciągle w czołówce. PHP-Nuke mimo mniejszych możliwości względem postnuke i md-pro rozkłada je osiągami, głównie przez wolniejsze systemy skór AutoTheme i Xanthia. Dodatkowo kod PHP-Nuke znacznie zmienił się na przełomie kilku ostatnich wersji rozwojowych, a Postnuke i MD-Pro praktycznie stoją w miejscu.
Wiele serwerów jest przeciążonych - administratorzy upychają znacznie więcej kont niż powinni, przez co każda strona o trochę większej oglądalności "powoduje zbyt duże obciążenie serwera". W takim przypadku zalecam bezwarunkową zmianę serwera. Optymalizacja nabiera na znaczeniu dla serwisów o większym ruchu – od kilku/nastu wejść na sekundę.
Maksymalne zużycie pamięci RAM (MB)

Nazwa Skryptu | Zużyta ilość RAM (MB) |
---|---|
punbb | 0,74209595 |
php-fusion 6.00.305 | 0,7441864 |
jPortal 2.3.1 | 0,80652618 |
4images gallery | 1,4013443 |
RkCMF2 | 1.43427276611 |
blue-dragon 2.9.0 | 1,57009125 |
PHP-Nuke 7.8 | 1,60551453 |
phpBB | 1,69927979 |
LDU 8.03 | 2,04644775 |
e107 v0.7.2 | 2,11766815 |
ModXcms 0.9.1 | 2.44509887695 |
phorum 5.0.21 | 3.34918212891 |
IPB 2.0.0 | 3,68376923 |
SMF 1-1-rc2 | 3,76983643 |
CPGallery 1.4.4 | 4,73764038 |
wordpress | 4,99608612 |
Joomla | 5,64939117 |
postnuke 0.762 lite | 6,20975494 |
drupal 4.7.0-beta6 | 6,26269531 |
xaraya1.0.2 | 7,30461884 |
postnuke 0.762 xanthia | 7,87385559 |
md-pro 1.07.6 | 8,04347992 |
Czas ładowania strony (sekundy)

Nazwa Skryptu | Czas ładowania (sek.) |
---|---|
punbb | 0,0906 |
php-fusion 6.00.305 | 0,1392 |
jP 2.3.1 | 0,1405 |
RkCMF2 | 0.1847 |
phpBB | 0,2698 |
SMF 1-1-rc2 | 0,2761 |
phorum | 0.2926 |
IPB 2.0.0 | 0,3632 |
LDU 8.03 | 0,3987 |
4images | 0,4822 |
drupal 4.7.0-beta6 | 0,537 |
PHP-Nuke 7.8 | 0,6241 |
blue-dragon 2.9.0 | 0,8182 |
wordpress | 0,9093 |
ModXCms 0.9.1 | 1.0193 |
e107 v0.7.2 | 1,1922 |
postnuke 0.762 lite | 1,3185 |
Joomla | 1,3549 |
xaraya 1.0.2 | 1,672 |
CPG 1.4.4 | 1,7712 |
postnuke 0.762 xanthia | 1,8905 |
md-pro 1.07.6 | 2,8205 |
Drzewa wykonywania kodu
4images: LinkjPortal: Link
CoppermineGallery: Link
MD-Pro: Link
e107: Link
Blue Dragon: Link | Link
Drupal: Link
Joomla: Link
LDU: Link
phpBB: Link
Xaraya: Link
Postnuke: Link
PHP-Fusion: Link
punBB: Link
php-nuke: Link
Wordpress: Link
ModXCMS:Link
RkCMF2: Link
phorum: Link
RkBlog
Comment article