PHP 7: Até 9 Vezes Mais Rápido Que o PHP 5.6

PHP 7: Até 9 Vezes Mais Rápido Que o PHP 5.6

O PHP 7 (sucessor do PHP 5.6) se demonstra muito mais rápido que suas 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?! :P

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

execucoes

media

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 aprender todas as novidades do PHP 7 e todos os fundamentos essenciais da linguagem, o Curso ULTIMATE PHP foi totalmente reformulado e atualizado. O resultado foi o ULTIMATE PHP 2.0, o primeiro curso do Brasil a abordar o PHP 7, logo em dezembro de 2015, quando a versão final do PHP 7 foi lançada.

No curso, você aprenderá desde o básico do PHP, vendo todos os conceitos e fundamentos da linguagem, até conceitos de nível intermediário. Alguns temas mais avançados são abordados, como Orientação a Objetos e Segurança.

Clique Aqui e Conheça o Curso ULTIMATE PHP

 

Aprenda Ainda Mais

15 Dicas, Boas Práticas e Fundamentos do PHP

Conheça Dicas FUNDAMENTAIS para programar em PHP de forma Profissional

Não se considere Programador PHP sem antes ler este guia e adotar estas práticas!

Baixe gratuitamente este guia com 15 Dicas de PHP

The following two tabs change content below.
Graduado em Ciência da Computação, pela Universidade Federal do Paraná (UFPR), é desenvolvedor de software desde 2008, com foco em Desenvolvimento Web com PHP.
  • Luis Henrique

    Obrigado pelo artigo.

    Vou dar uma olhada no seu curso de PHP 7 também :D

    • Obrigado!

      Acompanhe pelo Facebook e fique sempre de olho nos novos posts!

      Abraço
      Beraldo

  • Muito bom seu blog vou seguir ele sempre….

    • Olá, Daniel

      Que bom que gostou do conteúdo! :)

      Abraço
      Beraldo

  • Beraldo…
    Você está de parabéns ! Blog da Hora .. Muito bom o conteúdo !
    Sucesso sempre ..

    Blog salvo nos favoritos..

  • Byzantyna “ᵛᵞᵈᵅᴵᵒᵏᵅ™”

    Eu não vejo mal algum em vender cursos, mas você diz ai no texto que o curso é 100% GRATUITO, ai clicamos e cai numa página para apenas TESTAR o curso.
    ultimatephp. com. br /gravity-landing/ curso-2/
    Siga com honestidade, acabei de conhecer o seu site e já estou com desconfiança…

    • Olá. O mini-curso gratuito de PHP 7 estava disponível durante a fase beta da versão. Era um curso via email. Assim que a versão final foi lançada, em 03 de dezembro de 2015, o ULTIMATE PHP 2.0 foi lançado e o mini-curso gratuito foi retirado do ar. Apenas esqueci de atualizar esse post. Mas acabei de fazê-lo.

      Sobre o pop-up, basta clicar fora dele ou teclar ESC para sair. De qualquer forma, acabei de adicionar um botão “Fechar”

      • Byzantyna “ᵛᵞᵈᵅᴵᵒᵏᵅ™”

        Beleza meu caro, entendido!
        Eu reclamei do popup justamente porque não fechava, eu tentei tudo isso ai rs.
        Desculpe o jeito que falei, estava irritado por falta de dormir :(

  • Gilberto Albino

    O PHP 7 é o sucessor do PHP 5. Não existiu versão pública do PHP 6 por alguns motivos.
    […]
    Outro motivo é que tinha muito charlatão por aí vendendo livros, cursos e aulas sobre o PHP 6, que nem sequer existia oficialmente.

    Você está dizendo que um dos motivos é porque tinha charlatões?

    Bom, acho que faltou um pouco de História do PHP ai. O PHP 6 foi lançado na versão Alpha, nenhum erro até ai, e ficou alguns meses disponível. Quem publicou livro e cursos não era charlatão, apenas fez o que muita gente faz até hoje. Antes da versão final do PHP 7 já tinha curso e livro para vender, e isso não faria de seus autores charlatões, caso o PHP 7 não viesse a se oficializar.
    Eu acompanhei de perto a evolução do PHP e inclusive comprei alguns livros do PHP 6, porque, quem quer estar um passo a frente, se envolve com versões alpha, beta e previews, e não me sinto vítima de nenhum charlatão, até porque todos os autores são pessoas renomadas no universo PHP.

    • Olá, Gilberto.
      “até porque todos os autores são pessoas renomadas no universo PHP”
      Será? Todos eles? Tenho muitas dúvidas sobre isso.
      Não falo só de livros, mas de cursos em geral.

      Concordo que acompanhar a evolução da linguagem é importante. Fiz isso com o PHP 7, inclusive. Mas, na minha opinião, ler os RFC e notas oficiais do PHP é a melhor forma. Porém cada um tem sua opinião. Eu acho loucura alguém publicar um livro sobre uma ferramenta ainda em fase alpha. Mais loucura ainda comprar um material desses

      • Gilberto Albino

        Então, como você acha que HTML 5 e CSS 3 se tornaram populares? Nem finalizaram a implementação total nos navegadores mas já se usa o que se tem. Nem todos “pré”-aprendem com manuais e especificações. Se você analisar o fato que uma tecnologia sempre evolui, alpha, beta, RC são as fases evolutivas dela, e alguém tem que testar, esperar um OpenSource sair do forno sem a colaboração de quem vai usa-lo é impossível. Pois os bugs tracks só existem graças as pessoas que perdem tempo e dinheiro testando… lol

        • Ok, essa é a sua opinião. Eu continuo com a minha.
          A gente está discutindo um pequeno detalhe que influenciou a decisão do nome. Não foi o fator principal. Foi uma questão de evitar confusão, como está descrito no RFC.

          • Gilberto Albino

            […] Outro motivo é que tinha muito charlatão por aí vendendo livros, cursos e aulas sobre o PHP 6, que nem sequer existia oficialmente. […]

            • Qual parte do “**outro** motivo” você não entendeu?
              Faça assim: vá reler seu ótimo e atualizado livro de PHP 6, escrito por pessoas renomadas e pare de jogar fora o meu tempo :)

              • Gilberto Albino

                Se informe melhor amigo:
                O PHP 5.3 foi lançado em 30/06/2009 e o PHP 6.0 em 2007, muitas das coisas que existem no PHP 5.3 existem porque existiam no PHP 6. Quem estudou não foi vítima de nenhum charlatanismo. Confira em (http://www.sitepoint.com/whats-new-php-5-3/)

                “PHP 6 is just around the corner, but for developers who just can’t wait, there’s good news — many of the features originally planned for PHP 6 have been back-ported to PHP 5.3, a final stable release of which is due in the first half of this year.”

                Ou seja, quem estudou PHP 6, já estava preparado para o novo que viria a ser adicionado ao PHP 5.3. Pois quem aprende PHP 5.2, usa seus recursos no 5.3, que usa no 5.4, que usa no 5.5, que usa no 5.6, que usa no 7, que vai usar no 8, a menos que sejam depreciadas.

                Ou seja, não existe nenhum charlatão na história, apenas o esforço de levar adiante o que seria a mais revolucionária versão do PHP, que virou a 5.3 no final das contas.

                O PHP somente foi descontinuado devido a complexidade do suporte ao UTF-8 que eles desejavam.

                Não porque tinha “charlatões” vendendo livro.