RSS

php-banner

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

image001 (2)

 

OroCRM Account Grid Response Time with PHP 7

image005

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

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.

3 comments
ssossossosso