O PHP 7 (sucessor do PHP 5.6) se mostra muito mais rápido que as versões anteriores. Em alguns casos, pode ser até 9 vezes (NOVE!!) mais rápido! Veja aqui os resultados do testes que fiz comparando o PHP 5.6 e o PHP 7. Você vai se surpreender!
E também tenho uma surpresa, que vou revelar no final do artigo. Mas não vale ir direto pra lá, heim?! 😛
O PHP 7
O PHP 7 é o sucessor do PHP 5. Não existiu versão pública do PHP 6 por alguns motivos.
Houve um PHP 6. Ou pelo menos uma tentativa dele. Porém o resultado não foi satisfatório e a versão não foi publicada oficialmente, mas existiram informações sobre essa versão. Logo poderia haver confusão se esta nova versão se chamasse PHP 6.
Outro motivo é que tinha muito charlatão por aí vendendo livros, cursos e aulas sobre o PHP 6, que nem sequer existia oficialmente.
Então, para evitar esses problemas, a equipe do PHP resolveu chamar a nova versão de PHP 7.
Se quiser ler os diversos motivos dessa escolha, leia o RFC oficial sobre a discussão sobre o nome da versão do PHP.
A versão Release Candidate (RC) do PHP 7 foi lançada no dia 21 de agosto. Por ser uma versão RC, é bem provável que haja pouquíssimas mudanças até a versão final. Apenas algumas correções de bugs.
Isso quer dizer que os resultados que obtivermos agora serão bem próximos (ou até iguais) aos que teremos com a versão final.
Critério de Comparação
Para comparar o desempenho, utilizei o script de benchmark que o próprio PHP traz. No código-fonte do PHP no GitHub, encontramos o arquivo Zend/bench.php, que é o script responsável por analisar o desempenho, executando algumas rotinas comuns.
Esse é o script que utilizarei para analisar o desempenho das versões do PHP.
Ao executar o script, você verá uma lista de execuções e seus respectivos tempos. No final, será exibido o tempo total. É esse tempo total que nos interessa aqui.
Veja um exemplo da execução:
php Zend/bench.php simple 0.395 simplecall 0.954 simpleucall 1.063 simpleudcall 1.073 mandel 1.027 mandel2 1.072 ackermann(7) 0.821 ary(50000) 0.041 ary2(50000) 0.029 ary3(2000) 0.563 fibo(30) 2.911 hash1(50000) 0.145 hash2(500) 0.049 heapsort(20000) 0.265 matrix(20) 0.245 nestedloop(12) 0.703 sieve(30) 0.244 strcat(200000) 0.035 ------------------------ Total 11.635
Como o tempo de execução pode variar um pouco, o correto é executar algumas vezes e fazer a média.
Vou executar o script 15 vezes com cada versão do PHP.
Script Utilizado
Para agilizar a tarefa de executar 15 vezes e fazer a média, vou usar um pequeno Shell Script. Basicamente um loop e alguns echo’s. Vou dividir o comando em linhas para facilitar a visualização:
soma=0; \ for ((i = 0; i < 15; i++)) ; \ do \ tempo=$(php Zend/bench.php | tail -n 1 | awk '{print $2}'); \ echo "Tempo $i: $tempo"; \ soma=$(echo "$soma + $tempo" | bc -l); \ done ; \ echo "Tempo total: $soma"; \ media=$(echo "scale=3; $soma / $i" | bc -l); \ echo "Tempo médio: $media"
O script Zend/bench.php será executado no próprio terminal. Caso você nunca tenha visto isso antes, recomendo ler este meu artigo, onde mostro as diferentes formas de execução do PHP.
Caso você queira entender melhor como os scripts Shell funcionam, veja este meu mini-curso gratuito de Shell Script.
Plataforma
Fiz os testes na seguinte plataforma:
- Processador: Intel Core i7 2,6 GHz
- Memória: 16 GB DDR3 1600 MHz
- Sistema operacional: Mac OS X 10.10.4 (Yosemite)
As versões do PHP usadas foram 5.6.12 e 7.0RC1.
Resultados
Na tabela abaixo mostro os resultados das 15 execuções e o tempo médio para cada versão do PHP.
PHP 5.6.12 | PHP 7.0RC1 | |
---|---|---|
Execução 01 | 11.246 | 1.233 |
Execução 02 | 11.858 | 1.179 |
Execução 03 | 12.045 | 1.185 |
Execução 04 | 11.793 | 1.239 |
Execução 05 | 11.733 | 1.195 |
Execução 06 | 11.898 | 1.233 |
Execução 07 | 11.885 | 1.202 |
Execução 08 | 11.877 | 1.205 |
Execução 09 | 11.901 | 1.227 |
Execução 10 | 11.885 | 1.210 |
Execução 11 | 11.844 | 1.343 |
Execução 12 | 11.842 | 1.325 |
Execução 13 | 12.070 | 1.305 |
Execução 14 | 11.698 | 1.178 |
Execução 15 | 11.768 | 1.327 |
Tempo Total | 177.343 | 18.586 |
Tempo Médio | 11.822 | 1.239 |
Para visualizar melhor as diferenças de tempo, montei estes dois gráficos:
Se dividirmos o tempo médio do PHP 5.6 pelo tempo médio do PHP 7, teremos: 11.822 / 1.239 = 9.541
Ou seja, o PHP 7 se saiu NOVE VEZES MAIS RÁPIDO!
Logicamente, esse número pode variar conforma o hardware e conforme a tarefa executada. Neste caso, analisei somente o benchmark sugerido pelo próprio PHP.
Conclusão
O PHP 7 é, de fato, muito mais rápido que o PHP 5.
Resta analisar em casos reais, como em frameworks, CMS etc. Mas apenas com esse teste já vemos que ele tem desempenho bem superior em relação às versões anteriores
Quer Aprender Mais Sobre o PHP 7?
Para incentivar o uso do PHP 7, eu criei um curso 100% GRATUITO sobre ele, onde mostro as principais novidades, novos recursos, o que vai parar de funcionar e muito mais. Vou ensinar você a instalar o PHP 7 sem afetar seu atual PHP 5. Falo de funções novas e outras que se tornarão obsoletas. Tem muita coisa nova e você não pode perder!