Tests de performance de PHPUnit et couverture de code
Comme il a déjà été dit de nombreuses fois, PHP 7 est plus rapide que PHP 5.
Depuis PHPUnit 4.8 vous pouvez choisir entre XDebug et phpdbg comme pilote pour récupérer les données de couverture du code, voir PHPUnit 4.8: Code Coverage Support.
Voici quelques résultats de tests de performance.
Tous les tests utilisent PHPUnit 5.0.8, PHP 5.6.15 en SCL ou PHP 7.0.0RC6 en SCL et XDebug 2.4.0beta1 (récemment publié avec quelques correctifs supplémentaires) sur les tests unitaires de composer.
PHP 5 sans couverture de code
$ php56 vendor/bin/phpunit -v Runtime: PHP 5.6.15 Time: 4.78 seconds, Memory: 40.25Mb
PHP 7 sans couverture de code
$ php70 vendor/bin/phpunit -v Runtime: PHP 7.0.0RC6 Time: 3.37 seconds, Memory: 22.00Mb
Donc PHP 7 est bien plus rapide et permet de gagner 30% de temps d'exécution et 45% de mémoire.
PHP 5 avec couverture de code
$ php56 vendor/bin/phpunit -v Runtime: PHP 5.6.15 with Xdebug 2.4.0beta1 Time: 1.89 minutes, Memory: 90.50Mb
PHP 7 avec couverture de code et XDebug
$ php70 vendor/bin/phpunit -v Runtime: PHP 7.0.0RC6 with Xdebug 2.4.0beta1 Time: 39.41 seconds, Memory: 52.00Mb
PHP 7 de nouveau vraiment plus rapide (65% de temps, 43% de mémoire)
PHP 7 avec couverture de code et phpdbg
$ php70-phpdbg -qrr vendor/bin/phpunit -v Runtime: PHPDBG 7.0.0RC6 Time: 13.07 seconds, Memory: 92.00Mb
Terriblement plus rapide :) 66% du temps d'exécution économisé comparé à XDebug, et 89% comparé à PHP 5
J'ai remarqué que beaucoup de développeurs n'était pas au courant de cette dernière solution, quel dommage ! J'espère que ce billet vous encouragera à la tester.