Test wydajności 10 wybranych systemów CMS

Dodane:

MamStartup logo Mam Startup

Udostępnij:

Na rynku dostępnych jest obecnie kilkadziesiąt systemów CMS. Bardzo często słyszymy pytanie o najlepszy system zarządzania treścią. Postanowiliśmy dokonać rzetelnych, obiektywnych porównań i przyjrzeć się kilku systemom zarządzania treściami.

Na rynku dostępnych jest obecnie kilkadziesiąt systemów CMS. Bardzo często słyszymy pytanie o najlepszy system zarządzania treścią. Postanowiliśmy dokonać rzetelnych, obiektywnych porównań i przyjrzeć się kilku systemom zarządzania treściami.

Jako zespół jednego z systemów CMS – Windu.org, przeprowadziliśmy testy wydajności 10 znanych i popularnych CMSów. Z uwagi na metodologię pomiarów do badania zostały wybrane systemy oparte o system bazy danych MySQL i działające na silniku PHP5. Aby ułatwić porównanie, do testów zakwalifikowaliśmy jedynie systemy dostępne w modelu Open Source.

Kilka słów o metodologii testów

Specyfikacja maszyny testowej

  • Procesor – Core i 5 3550 @ 3,30 GHz
  • RAM – 8GB 1600 MHz
  • HDD – SSD Intel 80GB

Środowisko testowe

  • System operacyjny – Windows 8
  • Oprogramowanie serwera – UW AMP z silnikiem Apache 2.2.22
  • Wersja PHP – 5.4.15
  • Standardowa konfiguracja z wyłączonymi akceleratorami typu opCache czy zend optimalizer
  • Program testowy – Apache Benchmark

Parametry testu

  • Ilość odpytań serwera – 1000
  • Liczba klientów odpytujących na raz – 5

Testowane systemy CMS

Testowane były najnowsze wersje stabilne systemów, aktualne w dniu testów. Zostały one zainstalowane na maszynie lokalnej i uruchomione na silniku bazy danych MySQL. Testy odbywały się poprzez wywołanie strony głównej serwisu, na ustawienia domyślnych CMSa oraz ze standardowym szablonem graficznym dostępnym po instalacji.

Wyniki

Poniżej prezentujemy tabelę wyników. Im krótszy czas i więcej odpytań serwera, tym lepiej. Wynik taki oznacza, że maszyna zdołała wywołać stronę więcej razy w danym czasie, dzięki czemu cały test trwał krócej.

Wnioski

Ku naszej radości najlepsze rezultaty uzyskał… Windu CMS z włączonym cache. Jednak z uwagi na warunki testu, które zakładały testowanie CMSa na domyślnych ustawieniach, nasz rodzimy CMS jest dopiero na 3 pozycji. Wynika to z faktu, że cache w Windu na ustawieniach domyślnych jest wyłączony). Wyprzedzają go zatem 2 inne systemy: Textpattern i PHP Fusion. Textpattern to dość prosty CMS, posiadający znacznie mniej funkcjonalności; podobnie jest w przypadku PHP Fusion, który – napisany inlinowo – jest swojego rodzaju reliktem przeszłości (choć trzeba przyznać, że wciąż popularnym).

Ku naszej radości najlepsze rezultaty uzyskał… Windu CMS z włączonym cache. Jednak z uwagi na warunki testu, które zakładały testowanie CMSa na domyślnych ustawieniach, nasz rodzimy CMS jest dopiero na 3 pozycji. Wynika to z faktu, że cache w Windu na ustawieniach domyślnych jest wyłączony). Wyprzedzają go zatem 2 inne systemy: Textpattern i PHP Fusion. Textpattern to dość prosty CMS, posiadający znacznie mniej funkcjonalności; podobnie jest w przypadku PHP Fusion, który – napisany inlinowo – jest swojego rodzaju reliktem przeszłości (choć trzeba przyznać, że wciąż popularnym).

W tym miejscu konieczny jest komentarz, wyjaśniający kwestię metodologiczną: biorąc pod uwagę korzystne dla Windu CMS rezultaty testów, można by pokusić się o sugestię tendencyjności wyników. Dlatego zachęcamy do powtórzenia testów w domowych warunkach, wyniki zapewne będą porównywalne.

Warto też zaznaczyć, że tak dobre wyniki nas samych zaskoczyły.  Z początku, w badaniach wstępnych, nasunęła się myśl, że może to wynikać z zastosowania bazy danych SQLite, na której windu pracuje niejako “oryginalnie” – jednak po przeprowadzeniu testu ponownie (już finalnie na bazie MySQL) wyniki okazały się bardzo zbliżone. Dalsza analiza wykazała, że zastosowanie nowatorskiej metody cachowania permanentnego pewnych wyników operacji PHP, które najbardziej obciążały system było strzałem w dziesiątkę! Metoda działania jest bardzo prosta: operacje najbardziej obciążające dla serwera, które nie muszą być odświeżane każdorazowo, zrzucamy do pliku *.tmp w formie zserializowanej tablicy. W kolejnym odświeżeniu strony system nie musi liczyć wszystkiego na nowo – wystarczy, że odczyta wynik operacji z odpowiedniego pliku.

źródło: informacja prasowa