Pull to refresh
0
FFCMS
Теперь FFCMS 3 с MVC, composer, AR!

Тестирование производительности популярных (и не очень) CMS

Reading time 5 min
Views 26K
php script load total time seconds


Приветствую тебя, хабражитель! Разрабатывая FFCMS для своих проектов одной из основных своих целей я выделял быструю скорость работы и минимальное потребление ресурсов оборудования — однако все значения можно оценить лишь в сравнении, что я и постараюсь сделать в данной статье.

В прошлой моей публикации некоторые пользователи поинтересовались вопросом производительности системы и я решил провести тестирование различных популярных и молодых CMS по состоянию на 18 октября 2014 года. Хочется отметить — тестирование системы проводилось сразу же после ее установки и данные могут существенно измениться в ту или иную сторону в зависимости от периода использования системы — увеличения базы данных, количества файлов и прочие условия.

Предисловие


Перед проведением подобного тестирования я хотел посмотреть на результаты аналогичных тестов — ведь вероятней всего их уже проводили и до меня. Однако к моему разочарованию, мне не удалось найти ни единого развернутого тестирования, в котором бы сравнивались хотя-бы 3 или более систем по многим критериям (возможно я плохо искал?). Это удивительно, ведь популярными CMS пользуются десятки (а то и сотни) тысяч веб-мастеров, программистов и крупных компаний — неужели вопрос потребляемых ресурсов системой не интересует вовсе никого?

Объекты тестирования


Для тестирования я выбрал ряд популярных на данный момент систем, как коммерческих так и бесплатных. Были выбраны 10 систем, ниже приведены их названия и используемые версии:
  • Bitrix standart — 14.5.0
  • WordPress 4.0
  • Drupal 7.32
  • Joomla! 3.3.6
  • Umi.cms 2.9.7
  • FFCMS 2.0.3
  • InstantCMS 2.1.1
  • KodiCMS 12.20.37(master)
  • NetCat Standart 5.4
  • HostCMS.Халява 6.1.6

Для платных систем были выбраны демонстрационные версии, которые возможно загрузить на сайте создателей.

Методика тестирования


Для того, чтобы результат тестирования был однородным для всех продуктов была создана виртуальная машина, на которую был установлен веб сервер, база данных и прочее необходимое ПО для тестирования. В качестве стенда использовались:
  • Apache 2.2.27;
  • PHP 5.3.28;
  • MySQL Community Server 5.5.38-log;
  • Модули PHP: Zend Engine v2.3.0 (никаких opcache, xcache, acp, eaccelerator);
  • Apache benchmark Version 2.3.

* UPD: так же был проведен второй тест на php 5.5 с включенным OPCache как запросили критики в комментариях — его результат пропорционален основному тесту. Результаты приведены в последнем разделе.

Каждая CMS была установлена в виртуальной среде стенда после чего в ее код (чаще всего index.php) было добавлено несколько строк, которые позволили сохранять результат о времени выполнения скрипта и объеме затраченной памяти:

$_test_loadstart = microtime(true);
// код CMS
$_test_loadend = microtime(true);
$_test_loadtime = number_format($_test_loadend - $_test_loadstart, 3);
$_test_memory = number_format(memory_get_usage()/1048576, 3);
file_put_contents($_SERVER['HTTP_HOST'] . '.txt', $_test_loadtime . ';' . $_test_memory . "\n", FILE_APPEND);

В результате на выходе был получен файл domain.local.txt в котором содержались данные о времени загрузки скрипта и потреблении оперативной памяти.
Для создания запросов на сайт был использован ab (Apache benchmark) без создания параллельных запросов — целью не было тестирование apache, целью было получить средние результаты для каждой CMS:

ab -n 1000 http://domain.local/ > ~/bench/ab/domain.local.txt


Методика оценки результатов


Всего по выше описанной технологии проведения тестирования была дана оценка по следующим разделам:
  • Описательная оценка (Basic) — размер дистрибутива, кол-во файлов, размер и характеристики базы данных
  • Оценка скорости загрузки скрипта (phpload_time)
  • Оценка размера потребленной оперативной памяти (phpload_memory)
  • Оценка результатов тестирования Apache benchmark (apache_benchmark)

В каждом разделе тестирования для каждой CMS были выставлены оценки (-2 <= x <= +2) в зависимости от полученных результатов (личных) и средних (avg) всей выборки:
  • -2 — худший результат в данном тесте
  • -1 — результат, худший чем среднее в данном тесте
  • +0,5 — результат близкий к среднему в пределах standart devination
  • +1 — результат, лучший чем среднее в данном тесте
  • +2 — лучший результат в данном тесте

По результатам тестирования во всех категориях по всем критериям была составлена результирующая таблица, в которой указаны суммарные результаты по всем тестам.
* Хочется так же остановиться на 1 моменте — UMI.CMS при тестировании показывала запредельные результаты по скорости загрузки, поэтому ее результаты были исключены из расчета AVG в некоторых категориях тестирования.

Тестирование


Раз с материалом и методикой тестирования мы ознакомились — перейдем непосредственно к самому тестированию. Ниже предоставлены итоговые результаты по каждой из категорий тестирования.

Результаты тестирования в удобном формате: Google spreadsheet
Результаты для PHP 5.5 с OPCache (пропорциональны основным): Google spreadsheet.

Описательная оценка


Test/CMS Bitrix
Wordpress Drupal Joomla Umi.CMS FFCMS InstantCMS KodiCMS
NetCat
HostCMS AVG MIN MAX
Installed size(MB) 191 18,5 11,7 20,1 105 18,9 11,9 23,4 98,4 17,5 51,64 11,7 191
File count 29908 1175 1074 5267 7128 1682 1650 3009 6391 2919 6020,3 1074 29908
Mysql table count 241 11 74 68 97 22 84 33 155 114 89,9 11 241
Mysql table rows 21918 126 1421 461 14616 187 12587 46 31467 20302 10313,1 46 31467
Mysql database size(MB) 11 0,56 4,6 3,9 6,2 0,356 6,8 0,948 2,7 1,9 3,8964 0,356 11
SUMMARY POINTS -9 6 5 5,5 -5 6 1 6 -4 1

Оценка скорости загрузки скрипта


Test/CMS Bitrix
Wordpress Drupal Joomla Umi.CMS FFCMS InstantCMS KodiCMS
NetCat
HostCMS AVG MIN MAX
AVG loadtime (sec)
0,50 0,497733 0,210623 0,325381 2,99 0,090089 0,548239 0,213725 0,3279 0,70523 0,38 0,09 0,71
MIN loadtime (sec)
0,45 0,467 0,19 0,305 2,9 0,083 0,518 0,194 0,304 0,144 0,30 0,08 0,52
MAX loadtime (sec)
0,69 0,661 0,317 0,489 3,218 0,135 0,851 1,387 2,076 0,91 0,83 0,14 2,08
SUMMARY POINTS -1 -1 3 2,5 -6 6 -2,5 1 -4 -2


Оценка размера потребленной оперативной памяти


Test/CMS Bitrix
Wordpress Drupal Joomla Umi.CMS FFCMS InstantCMS KodiCMS
NetCat
HostCMS AVG MIN MAX
AVG memory (mb)
28,944115 22,992 18,144003 12,556 23,089791 3,181 5,953808 6,485019 13,696 10,789239 14,5830975 3,181 28,944115
MIN memory (mb) 28,942 22,992 18,144 12,556 22,784 3,181 5,951 6,485 13,696 4,213 13,8944 3,181 28,942
MAX memory (mb)
29,177 22,992 18,147 12,556 23,095 3,181 6,885 6,504 13,696 10,848 14,7081 3,181 29,177
SUMMARY POINTS -6 -3 -3 3 -3 6 3 3 3 -1


Оценка Apache benchmarks


Test/CMS Bitrix
Wordpress Drupal Joomla Umi.CMS FFCMS InstantCMS KodiCMS
NetCat
HostCMS AVG MIN MAX
Time taken for tests (sec) 527,433 520,498 230,91 340,219 13 032,86 97,178 555,886 224,176 343,965 727,217 396,3868889 97,178 727,217
Complete requests 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
Failed requests 965 0 0 0 697 0 0 0 0 955 213,3333333 0 965
Requests per second (#/sec) 1,9 1,92 4,33 2,94 0,08 10,29 1,8 4,46 2,91 1,38 3,547777778 1,38 10,29
Time per request (ms) 527,433 520,498 230,91 340,219 13032,857 97,178 555,886 224,176 343,965 727,217 396,3868889 97,178 727,217
Transfer rate 69,51 14,9 32,99 28,61 2,28 105,48 92,36 13,33 31,74 23,98 45,87777778 13,33 105,48
SUMMARY POINTS -4 -2 4 2 -12 10 0 4 2 -6


Итоговые результаты


Test/CMS Bitrix
Wordpress Drupal Joomla Umi.CMS FFCMS InstantCMS KodiCMS
NetCat
HostCMS
Basic -9 6 5 5,5 -5 6 1 6 -4 1
phpload_time -1 -1 3 2,5 -6 6 -2,5 1 -4 -2
phpload_memory -6 -3 -3 3 -3 6 3 3 3 -1
Apache benchmark -4 -2 4 2 -12 10 0 4 2 -6
SUMMARY RESULT
-20 0 +9 +13 -26 +28 +1,5 +14 -3 -8


Итоги тестирования


Теперь пришло время подбить итоги нашего тестирования и вкратце оценить полученный результат. Все наши результаты — расположены от 0 в 2 стороны: те, что получили отрицательный результат я бы не рекомендовал никому использовать вовсе, если вы дорожите вычислительными ресурсами (это лишь мое личное мнение — я прекрасно понимаю что функциональные возможности таких систем могут быть на порядок выше, чем у других).
Одним из важных результатов тестирования стало так же то, что ни 1 открытая система не получила отрицательной оценки, а все коммерческие продукты оказались за данной чертой (+6 / -4 в пользу open source).
Другие выводы мне бы делать не хотелось я лишь предоставлю вам итоговые графики важных тестов, выводы делайте сами (все картинки кликабельны):

load memory avg graphload time avg graphsummary statistic graph

Послесловие


Я ни в коем случае не хотел никого обидеть — я лишь предоставил результаты субъективного тестирования различных CMS. Вы всегда в праве решать, имеет ли потребление ресурсов для вас большое значение, возможно большее, чем удобство разработки/управления сайтом.

Результаты в удобном формате: Google spreadsheet
Результаты для PHP 5.5 с OPCache (пропорциональны основным): Google spreadsheet
Тестирование в plain-text: Забрать с Яндекс.диска
Only registered users can participate in poll. Log in, please.
Важно ли для вас потребление ресурсов в Web'e?
17.68% Выбираю продукты с низким потреблением ресурсов 90
17.29% Отдаю предпочтение большей функциональности 88
52.06% Предпочитаю в меру сбалансированные системы 265
12.97% Мне все равно — лишь бы сайт работал 66
509 users voted. 166 users abstained.
Tags:
Hubs:
+3
Comments 68
Comments Comments 68

Articles

Information

Website
ffcms.ru
Registered
Founded
Employees
1 employee (me only)
Location
Россия