Melhor e mais rápido
Bruno Ricardo Siqueira
2015
O PALESTRANTE
Bruno Ricardo Siqueira.
Desenvolvedor web e evangelista
PHP no Brasil. Entusiasta Docker.
Apaixonado por Git...
AGENDA
● Aquecimento
○ Contextualização
○ Depreciações
○ Remoções e redução de
inconsistências
● Olhando internamente
○ Me...
AQUECIMENTO
AQUECIMENTO - CONTEXTUALIZAÇÃO
● 2009 - PHP 5.3
○ Namespaces
○ Funções anônimas
● 2009 - PHP-FIG
● 2010 - HipHop for PHP
(...
AQUECIMENTO - CONTEXTUALIZAÇÃO
AQUECIMENTO - CONTEXTUALIZAÇÃO
AQUECIMENTO - CONTEXTUALIZAÇÃO
AQUECIMENTO - CONTEXTUALIZAÇÃO
PHP7 BETA2
24/07
● PHP 4 constructors
● password_hash() option
AQUECIMENTO - DEPRECIAÇÕES
AQUECIMENTO - REMOÇÕES E REDUÇÃO DE INCONSISTÊNCIAS
● date.timezone warning:
○ valor padrão
● tags alternativas:
○ <% open...
AQUECIMENTO - REMOÇÕES E REDUÇÃO DE INCONSISTÊNCIAS
● SAPIs e extensões:
○ sapi/aolserver, sapi/apache, sapi/apache_hooks,...
AQUECIMENTO - REMOÇÕES E REDUÇÃO DE INCONSISTÊNCIAS
● Uniform Variable Syntax
OLHANDO
INTERNAMENTE
OLHANDO INTERNAMENTE - MEMÓRIA
OLHANDO INTERNAMENTE - PERFORMANCE
● ZVALs PHP 5.X
○ (quase) sempre alocados
na heap
○ reference counted &
cycle colletcio...
Estruturas de dados menores.
Menos alocações.
Menos referenciação.
MAIS PERFORMANCE!
OLHANDO INTERNAMENTE - PERFORMANCE
100% de
melhora no
desempenho
NOVIDADES
NOVIDADES - UNICODE
NOVIDADES - EXCEÇÕES
NOVIDADES - EXCEÇÕES
NOVIDADES - EXCEÇÕES
NOVIDADES - EXCEÇÕES
NOVIDADES - EXCEÇÕES
NOVIDADES - CLASSES ANÔNIMAS
NOVIDADES - OPERADORES spaceship operator <=>
NOVIDADES - OPERADORES spaceship operator <=>
NOVIDADES - OPERADORES spaceship operator <=>
NOVIDADES - OPERADORES spaceship operator <=>
NOVIDADES - OPERADORES spaceship operator <=>
NOVIDADES - OPERADORES spaceship operator <=>
NOVIDADES - OPERADORES spaceship operator <=>
NOVIDADES - OPERADORES null coalesce operator ??
NOVIDADES - OPERADORES null coalesce operator ??
NOVIDADES - OPERADORES null coalesce operator ??
NOVIDADES - OPERADORES null coalesce operator ??
NOVIDADES - DECLARAÇÕES scalar types
NOVIDADES - DECLARAÇÕES scalar types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES return types
NOVIDADES - DECLARAÇÕES group use
NOVIDADES - DECLARAÇÕES group use
NOVIDADES - DECLARAÇÕES group use
NOVIDADES - DECLARAÇÕES group use
NOVIDADES - DECLARAÇÕES group use
NOVIDADES - DECLARAÇÕES group use
NOVIDADES - GENERATORS return expressions
NOVIDADES - GENERATORS return expressions
NOVIDADES - GENERATORS return expressions
NOVIDADES - GENERATORS return expressions
NOVIDADES - GENERATORS return expressions
NOVIDADES - GENERATORS return expressions
NOVIDADES - GENERATORS return expressions
NOVIDADES - GENERATORS delegating generator
NOVIDADES - GENERATORS delegating generator
NOVIDADES - GENERATORS delegating generator
NOVIDADES - GENERATORS delegating generator
NOVIDADES - GENERATORS delegating generator
NOVIDADES - GENERATORS delegating generator
NOVIDADES - GENERATORS delegating generator
NOVIDADES - GENERATORS delegating generator
return expressions + delegating generator…
Tá vendo a concorrência?
Lightweight
Threads
FTW!
FUTURO PRÓXIMO
& CONCLUSÕES
FUTURO PRÓXIMO
FUTURO PRÓXIMO
● PSR7 + Middleware pattern irão
aumentar ainda mais a
reusabilidade
● Multi thread nativo
● JIT + PHP Virt...
PERGUNTAS?
THANKS
FOR
BEING
HERE!
PHP7: melhor e mais rápido
Referências: http://bit.ly/tdcsp-2015-php7
BRUNO RICARDO SIQUEIRA
@bruno...
TDC SP 2015 - PHP7: melhor e mais rápido
TDC SP 2015 - PHP7: melhor e mais rápido
TDC SP 2015 - PHP7: melhor e mais rápido
TDC SP 2015 - PHP7: melhor e mais rápido
TDC SP 2015 - PHP7: melhor e mais rápido
Próximos SlideShares
Carregando em…5
×

TDC SP 2015 - PHP7: melhor e mais rápido

661 visualizações

Publicada em

A ideia da palestra é contextualizar os desenvolvedores PHP para o cenário atual da linguagem mostrando a evolução da mesma nos últimos anos. Busca-se ainda, a partir da análise desta evolução extrapolar este cenário e inferir de maneira realista o futuro próximo da linguagem. Serão apresentadas as evoluções na engine, novas sintaxes, alterações no lançamento de erros, marcação de tipos escalares, tipo de retorno de funções e muitas outras novidades que propiciarão, sem dúvida alguma, uma revolução nas ferramentas produzidas em PHP e para o PHP.

Publicada em: Software
0 comentários
9 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
661
No SlideShare
0
A partir de incorporações
0
Número de incorporações
8
Ações
Compartilhamentos
0
Downloads
23
Comentários
0
Gostaram
9
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

TDC SP 2015 - PHP7: melhor e mais rápido

  1. 1. Melhor e mais rápido Bruno Ricardo Siqueira 2015
  2. 2. O PALESTRANTE Bruno Ricardo Siqueira. Desenvolvedor web e evangelista PHP no Brasil. Entusiasta Docker. Apaixonado por Git. Trabalhando com internet há 8 anos, Bacharel em Sistemas da Informação formado pelo ICMC - USP, trabalhando atualmente na empresa CI&T, desempenhando o papel de Engenheiro de Software.
  3. 3. AGENDA ● Aquecimento ○ Contextualização ○ Depreciações ○ Remoções e redução de inconsistências ● Olhando internamente ○ Memória ○ Performance ● Novidades ○ Unicode ○ Exceções ○ Classes anônimas ○ Operadores ○ Declarações ○ Generators ● Futuro próximo & Conclusões ● Perguntas
  4. 4. AQUECIMENTO
  5. 5. AQUECIMENTO - CONTEXTUALIZAÇÃO ● 2009 - PHP 5.3 ○ Namespaces ○ Funções anônimas ● 2009 - PHP-FIG ● 2010 - HipHop for PHP (HPHPc) ○ PHP -> binário C++ ● 2011 - HipHop Virtual Machine (HHVM) ○ JIT -> HipHop ByteCode ● 2012 - PHP 5.4 ○ Traits ○ Built in Webserver ● 2013 - PHP 5.5 ○ Generators ○ OpCache no Core ● 2014 - HACK Language ● 2014 - PHP 5.6 ○ Variadic Functions (...) ○ php://input reutilizável
  6. 6. AQUECIMENTO - CONTEXTUALIZAÇÃO
  7. 7. AQUECIMENTO - CONTEXTUALIZAÇÃO
  8. 8. AQUECIMENTO - CONTEXTUALIZAÇÃO
  9. 9. AQUECIMENTO - CONTEXTUALIZAÇÃO
  10. 10. PHP7 BETA2 24/07
  11. 11. ● PHP 4 constructors ● password_hash() option AQUECIMENTO - DEPRECIAÇÕES
  12. 12. AQUECIMENTO - REMOÇÕES E REDUÇÃO DE INCONSISTÊNCIAS ● date.timezone warning: ○ valor padrão ● tags alternativas: ○ <% opening tag ○ <%= opening tag with echo ○ %> closing tag ○ (<scripts+languages*=s*(php|"php"|'php')s*>)i opening tag ○ (</script>)i closing tag ● múltiplos blocos default em switches
  13. 13. AQUECIMENTO - REMOÇÕES E REDUÇÃO DE INCONSISTÊNCIAS ● SAPIs e extensões: ○ sapi/aolserver, sapi/apache, sapi/apache_hooks, sapi/apache2filter, sapi/caudium, sapi/continuity, sapi/isapi, sapi/milter, sapi/nsapi, sapi/phttpd, sapi/pi3web, sapi/roxen, sapi/thttpd, sapi/tux, sapi/webjames, ext/mssql, ext/mysql, ext/sybase_ct, ext/ereg ○ movidas para o PECL ● Remoção de hexadecimais em strings numéricas ● E_STRICT Notices
  14. 14. AQUECIMENTO - REMOÇÕES E REDUÇÃO DE INCONSISTÊNCIAS ● Uniform Variable Syntax
  15. 15. OLHANDO INTERNAMENTE
  16. 16. OLHANDO INTERNAMENTE - MEMÓRIA
  17. 17. OLHANDO INTERNAMENTE - PERFORMANCE ● ZVALs PHP 5.X ○ (quase) sempre alocados na heap ○ reference counted & cycle colletcion ○ dupla quantidade de refcount (objetos) ○ muita referenciacão (ex.: um objeto em uma variável -> 4 ponteiros) ● ZVALs PHP 7 ○ valores simples (int, bool…) sem alocação na heap e sem refcount ○ não existe mais double refcount. ○ valores reutiáveis independentemente da zval structure
  18. 18. Estruturas de dados menores. Menos alocações. Menos referenciação. MAIS PERFORMANCE! OLHANDO INTERNAMENTE - PERFORMANCE
  19. 19. 100% de melhora no desempenho
  20. 20. NOVIDADES
  21. 21. NOVIDADES - UNICODE
  22. 22. NOVIDADES - EXCEÇÕES
  23. 23. NOVIDADES - EXCEÇÕES
  24. 24. NOVIDADES - EXCEÇÕES
  25. 25. NOVIDADES - EXCEÇÕES
  26. 26. NOVIDADES - EXCEÇÕES
  27. 27. NOVIDADES - CLASSES ANÔNIMAS
  28. 28. NOVIDADES - OPERADORES spaceship operator <=>
  29. 29. NOVIDADES - OPERADORES spaceship operator <=>
  30. 30. NOVIDADES - OPERADORES spaceship operator <=>
  31. 31. NOVIDADES - OPERADORES spaceship operator <=>
  32. 32. NOVIDADES - OPERADORES spaceship operator <=>
  33. 33. NOVIDADES - OPERADORES spaceship operator <=>
  34. 34. NOVIDADES - OPERADORES spaceship operator <=>
  35. 35. NOVIDADES - OPERADORES null coalesce operator ??
  36. 36. NOVIDADES - OPERADORES null coalesce operator ??
  37. 37. NOVIDADES - OPERADORES null coalesce operator ??
  38. 38. NOVIDADES - OPERADORES null coalesce operator ??
  39. 39. NOVIDADES - DECLARAÇÕES scalar types
  40. 40. NOVIDADES - DECLARAÇÕES scalar types
  41. 41. NOVIDADES - DECLARAÇÕES return types
  42. 42. NOVIDADES - DECLARAÇÕES return types
  43. 43. NOVIDADES - DECLARAÇÕES return types
  44. 44. NOVIDADES - DECLARAÇÕES return types
  45. 45. NOVIDADES - DECLARAÇÕES return types
  46. 46. NOVIDADES - DECLARAÇÕES return types
  47. 47. NOVIDADES - DECLARAÇÕES return types
  48. 48. NOVIDADES - DECLARAÇÕES return types
  49. 49. NOVIDADES - DECLARAÇÕES return types
  50. 50. NOVIDADES - DECLARAÇÕES return types
  51. 51. NOVIDADES - DECLARAÇÕES group use
  52. 52. NOVIDADES - DECLARAÇÕES group use
  53. 53. NOVIDADES - DECLARAÇÕES group use
  54. 54. NOVIDADES - DECLARAÇÕES group use
  55. 55. NOVIDADES - DECLARAÇÕES group use
  56. 56. NOVIDADES - DECLARAÇÕES group use
  57. 57. NOVIDADES - GENERATORS return expressions
  58. 58. NOVIDADES - GENERATORS return expressions
  59. 59. NOVIDADES - GENERATORS return expressions
  60. 60. NOVIDADES - GENERATORS return expressions
  61. 61. NOVIDADES - GENERATORS return expressions
  62. 62. NOVIDADES - GENERATORS return expressions
  63. 63. NOVIDADES - GENERATORS return expressions
  64. 64. NOVIDADES - GENERATORS delegating generator
  65. 65. NOVIDADES - GENERATORS delegating generator
  66. 66. NOVIDADES - GENERATORS delegating generator
  67. 67. NOVIDADES - GENERATORS delegating generator
  68. 68. NOVIDADES - GENERATORS delegating generator
  69. 69. NOVIDADES - GENERATORS delegating generator
  70. 70. NOVIDADES - GENERATORS delegating generator
  71. 71. NOVIDADES - GENERATORS delegating generator return expressions + delegating generator… Tá vendo a concorrência?
  72. 72. Lightweight Threads FTW!
  73. 73. FUTURO PRÓXIMO & CONCLUSÕES
  74. 74. FUTURO PRÓXIMO
  75. 75. FUTURO PRÓXIMO ● PSR7 + Middleware pattern irão aumentar ainda mais a reusabilidade ● Multi thread nativo ● JIT + PHP Virtual Machine ● Especificação da linguagem ● Mais consistência ● AST trará novas/melhores ferramentas de análise estática ● ...
  76. 76. PERGUNTAS?
  77. 77. THANKS FOR BEING HERE! PHP7: melhor e mais rápido Referências: http://bit.ly/tdcsp-2015-php7 BRUNO RICARDO SIQUEIRA @brunoric https://joind.in/14853

×