Benchmark CMSów i For za pomocą Xdebug

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)

bench1
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)

bench2
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: Link
jPortal: 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

Podstawy tworzenia stron www, 11 July 2008

Comment article
Comment article RkBlog main page Search RSS Contact