Back-End

10 set, 2015

PHP 7: até 9 vezes mais rápido que o PHP 5.6

Publicidade

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!

image-01

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:

03

04

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!