SugarCRM/SpiceCRM running on PHP7 and MySQL 5.7 – doubling performance


For all open source users two big releases happened in the last months. MySQL did release 5.7 in GA and even more exciting PHP7 was released. Both packages made significant promises towards performance increases.

While the update of the database to 5.7 does not make a big difference when it comes to the application SugarCRM will run smoothly on MySQL 5.7. We did the upgrades but still need to create some more significant stats on the performance gain.

What is more exciting is the upgrade to PHP7. Unfortunately, the upgrade to PHP7 is not straight forward with SugarCRM. This is true for all CE based releases from SugarCRM but also for the commercial editions of Sugar7. This is partially due to lazy programming where there are just syntactical errors that PHP5 tolerated but PHP7 will no longer tolerate. Furthermore, it is due to aged libraries that are included in SugarCRM.

We invested quite some time in the preparation for SpiceCRM’s first release targeted until end of the year to get the SugarCRM core ready to support PHP7. This includes a load of fixes in the core files and also upgrades of used libraries (e.g. amongst others the smarty engine sugar is still using is a release from 2005 and will by no means support PHP7).

In any case the results of running SugarCRM/SpiceCRM on PHP7 is impressive. For our test setup we used the same virtualization environment with 2 equivalent virtual machines running on Debian 8. one with PHP 5.6 vs another machine running PHP 7.0 both on the same VMWare Host. Both with the same amount of memory and CPUs. Both checked out the same repository from GIT so ensuring the same codebase. Both connected to the same Database server (a central DB server running on MySQL 5.7).

Performance measurement is increased by the SpiceCRM Performance trackers that log every request including the total response time as well as the database response time.

On average the response time of the instance running on PHP7 was at 64% of the PHP5 instance. So a performance gain of 35% in total response time. Eliminating the DB response time in the dataset comparing the pure PHP processing time the performance of the PHP7 instance was at response times of 55% over the PHP5 instance. So a performance gain of 45% almost doubling performance.

We have been impressed ourselves with these results. We expected performance increases but not at that magnitude. Still the port to PHP7 is not 100% done and there are still some glitches to overcome but that is now an even more important topic for us to support PHP7 as platform. We are planning to release full PHP7 and MySQL 5.7 support with the first SpiceCRM package.