📜 ⬆️ ⬇️

Performance testing popular (and not so) CMS

php script load total time seconds


Greetings to you, habrazhitel! When developing FFCMS for my projects, one of my main goals was to highlight the fast speed of work and the minimum consumption of equipment resources - however, all values ​​can be estimated only by comparison, which I will try to do in this article.

In my last post, some users asked about system performance and I decided to test various popular and young CMS as of October 18, 2014. It is worth noting that the system was tested immediately after its installation and the data can change significantly in one direction or another depending on the period of use of the system - database increase, number of files and other conditions.

Foreword


Before conducting such a test, I wanted to look at the results of similar tests — after all, they were most likely already conducted before me. However, to my disappointment, I could not find a single comprehensive test that would compare at least 3 or more systems by many criteria (maybe I was looking bad?). This is surprising, since dozens (or even hundreds) of thousands of webmasters, programmers and large companies use popular CMS - doesn’t the question of the resources consumed by the system interest anyone at all?
')

Test objects


For testing, I chose a number of currently popular systems, both commercial and free. Were selected 10 systems, below are their names and used versions:

For paid systems, demos have been selected that can be downloaded from the creators site.

Testing method


In order for the test result to be homogeneous for all products, a virtual machine was created on which a web server, database and other necessary testing software was installed. As a stand used:

* UPD: a second test was also conducted for php 5.5 with OPCache enabled as critics requested in the comments - its result is proportional to the main test. The results are shown in the last section.

Each CMS was installed in the virtual environment of the stand, after which several lines were added to its code (most often index.php), which allowed saving the result about the script execution time and the amount of memory consumed:

$_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); 

As a result, a domain.local.txt file was obtained at the output, which contained data on the script loading time and RAM consumption.
To create requests for the site, ab (Apache benchmark) was used without creating parallel requests - the goal was not to test apache, the goal was to get average results for each CMS:

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


Results Evaluation Methodology


A total of the above described testing technology was assessed in the following sections:

In each section of testing for each CMS, marks were given (-2 <= x <= +2) depending on the results obtained (personal) and average (avg) of the entire sample:

According to the results of testing in all categories for all the criteria, the resulting table was compiled, which shows the total results for all tests.
* I would also like to dwell on 1 point - when testing, UMI.CMS showed exorbitant loading speed results, therefore its results were excluded from the AVG calculation in some test categories.

Testing


Once we have become familiar with the material and testing methodology, we will proceed directly to the testing itself. Below are the final results for each of the categories of testing.

Test results in a convenient format: Google spreadsheet
Results for PHP 5.5 with OPCache (proportional to main): Google spreadsheet .

Descriptive evaluation


Test / CMSBitrix
WordpressDrupalJoomlaUmi.CMSFFCMSInstantCMSKodiCMS
Netcat
HostCMSAvgMINMAX
Installed size (MB)19118.511.720.110518.911.923.498.417.551.6411.7191
File count299081175107452677128168216503009639129196020.3107429908
Mysql table count241eleven74689722843315511489.9eleven241
Mysql table rows219181261421461146161871258746314672030210313.14631467
Mysql database size (MB)eleven0.564.63.96.20.3566.80,9482.71.93.89640.356eleven
SUMMARY POINTS-96five5.5-five6one6-fourone

Script download speed rating


Test / CMSBitrix
WordpressDrupalJoomlaUmi.CMSFFCMSInstantCMSKodiCMS
Netcat
HostCMSAvgMINMAX
AVG loadtime (sec)
0.500.4977330,2106230.3253812.990.0900890.5482390,2137250.32790.705230.380.090.71
MIN loadtime (sec)
0.450.4670.190.3052.90.0830.5180.1940,3040.1440.300.080.52
MAX loadtime (sec)
0,690.6610.3170.4893.2180.1350.8511,3872.0760.910.830.142.08
SUMMARY POINTS-one-one32.5-66-2.5one-four-2


Estimation of the size of consumed RAM


Test / CMSBitrix
WordpressDrupalJoomlaUmi.CMSFFCMSInstantCMSKodiCMS
Netcat
HostCMSAvgMINMAX
AVG memory (mb)
28,94411522,99218,14400312,55623,0897913.1815,9538086,48501913,69610,78923914.58309753.18128,944115
MIN memory (mb)28,94222,99218,14412,55622,7843.1815,9516,48513,6964.21313.89443.18128,942
MAX memory (mb)
29,17722,99218,14712,55623,0953.1816,8856.50413,69610,84814.70813.18129,177
SUMMARY POINTS-6-3-33-36333-one


Apache rating benchmarks


Test / CMSBitrix
WordpressDrupalJoomlaUmi.CMSFFCMSInstantCMSKodiCMS
Netcat
HostCMSAvgMINMAX
Time taken for tests (sec)527,433520,498230.91340,21913,032.8697,178555,886224,176343,965727,217396,386888997,178727,217
Complete requests1000100010001000100010001000100010001000100010001000
Failed requests9650006970000955213,33333330965
Requests per second (# / sec)1.91.924.332.940.0810.291.84.462.911.383.5477777781.3810.29
Time per request (ms)527,433520,498230.91340,21913032,85797,178555,886224,176343,965727,217396,386888997,178727,217
Transfer rate69.5114.932.9928.612.28105.4892.3613.3331.7423.9845,8777777813.33105.48
SUMMARY POINTS-four-2four2-12ten0four2-6


Final results


Test / CMSBitrix
WordpressDrupalJoomlaUmi.CMSFFCMSInstantCMSKodiCMS
Netcat
HostCMS
Basic-96five5.5-five6one6-fourone
phpload_time-one-one32.5-66-2.5one-four-2
phpload_memory-6-3-33-36333-one
Apache benchmark-four-2four2-12ten0four2-6
SUMMARY RESULT
-200+9+13-26+28+1.5+14-3-eight


Test results


Now it's time to sum up the results of our testing and briefly evaluate the result. All our results are from 0 to 2 sides: those that received a negative result, I would not recommend anyone to use at all if you value computing resources (this is just my personal opinion - I perfectly understand that the functionality of such systems can be much higher than others).
One of the important test results was also the fact that not a single open system received a negative evaluation , and all commercial products were below this level (+6 / -4 in favor of open source).
I would not like to draw any other conclusions; I will only provide you with the final plots of important tests, draw your own conclusions (all the pictures are clickable):

load memory avg graph load time avg graph summary statistic graph

Afterword


I in no way wanted to offend anyone - I just provided the results of subjective testing of various CMS. You are always in the right to decide whether resource consumption is of great importance to you, perhaps more than the convenience of developing / managing the site.

Results in a convenient format: Google spreadsheet
Results for PHP 5.5 with OPCache (proportional to main): Google spreadsheet
Testing in plain-text: Pick up from Yandex.Disk

Source: https://habr.com/ru/post/240829/


All Articles