Oro engineers were closely monitoring PHP 7 since its release on December of 2015. During the last few months, our team followed the results of different performance tests of other applications that upgraded to PHP 7 and obtained convincing information that this version delivers major performance and development process improvements. Published reports indicated huge performance gains such as:
- Up to 2× less memory consumption
- Up to 2× faster page response (page loading time)
In addition, the following advancements in the PHP language helped streamline development by making the coding process quicker and easier:
- Better error handling
- New Spaceship and Null Coalescing operators
- Anonymous classes
- Accurate type declaration
These benefits made it clear that we need to upgrade and add support for PHP 7 to both OroPlatform and OroCRM. PHP 7 support is already available in the master branch but the platform will be officially compatible starting with the next (1.10) release scheduled for this summer. We also decided to discontinue the support for the older PHP 5.4 version. The 5.4 version will remain supported in older versions (1.9.x and below) during their current life cycle, but will not be supported in release 1.10 and beyond.
The Impact of PHP 7 on Oro Platform and OroCRM
In addition to publicly available test results, Oro engineers conducted independent tests and conclude that compared to PHP 5.5, PHP 7 significantly improves the performance of OroPlatform and OroCRM. Performance improvements globally enhance both the end user and developer experience with faster server response time on user and command line interface. Also, the faster and more responsive OroPlatform and OroCRM becomes, less computing power is required, effectively reducing the infrastructure cost.
OroCRM page load times improvements
- Contact grid – 36%
- Account grid – 47%
- Contact view – 57%
- Account view – 45%
- Login page – 26%
Memory consumption
- 53% less in functional tests
- 43% less in unit tests
- 37% less in schema update
- 30% less in command line install
- 19% less in cache:clear
Tests/command execution speed
- 63% faster in both functional and unit tests
- 57% faster cache:clear
- 50% faster update
- 16% faster command line install
OroCRM Account Grid Response Time with PHP 5.5
OroCRM Account Grid Response Time with PHP 7
Testing environment
As an open source company our goal is to make sure we are transparent as possible providing developers with all the information they need. As such, we are sharing with the testing environment and the tools we used so developers in our ecosystem could test the application on their own and further support our findings. Please share the results with us on OroCRM forum
Environment
- CPU: Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz ( 4 CPU cores and 4 threads )
- Memory: 8 GB RAM
- DB: MariaDB 10.0.25
- Web-server: Apache 2.4.7
Tools used
- https://github.com/Alexia/php7mar – examine codebase on possible issue with PHP 7 incompatibility
- https://php-build.github.io/ – builds PHP so that multiple versions can be used in parallel
New dependency added: symfony/polyfill-php70 to make it possible to write portable code between PHP5 and PHP7. More information can be found in the main Polyfill README.