HHVM - Entre Nesse Ritmo - TDC Florianopolis 2014

Preview:

DESCRIPTION

Palestra ministrada durante a TDC 2014 de Florianopolis - Trilha PHP

Citation preview

HHVM - ENTRE NESSE RITMO

SOBRE MIM

DEVELOPER POR AMOR HA MAIS DE 5 ANOS

ZEND CERTIFIED ENGINEER DESDE 2013

APAIXONADO POR TECNOLOGIA

HHVM - O QUE EH ?HHVM - HIP HOP VIRTUAL MACHINE

ESCRITA PELO FACEBOOK

DESENVOLVIDA EM C++, PHP E OCALM

POSSUI UMA LINGUAGEM OPICIONAL CHAMADA “HACK”

OBJETIVO: SER MUITO MAIS RAPIDA QUE O “ZEND” PHP E SER COMPATIVEL COM ELE

UM POUCO DE HISTORIA!!

2008 - HPHPc , HPHPi, HPHPd

2010 - HHVM - Suporte a PHP 5.4

2013 - HPHPc DEPRECIADO

COMPATIBILIDADEUNIX BASED OS (SE VOCE PREFERE WINDOWS, USE O VAGRANT)

NGINX e APACHE

PHP 5.4

LIBRARIES: COMPOSER, DOCTRINE, MONOLOG, TWIG, GUZZLE, REACTPHP, PHPUNIT.

FRAMEWORKS: SYMFONY, DRUPAL, CODEIGINITER, CAKEPHP, LARAVEL, SILEX, SLIM, ETC.

COMO A HHVM FUNCIONA ?

?

?

?

?

?

?

? ? ?

? ?

?

?

?

?

?

?

?

?

? ?

?

? ?

? ?

?

? ? ? ?

?

?

?

?

CONTEXTUALIZANDO…

HIP HOP BYTECODE

MACHINE CODE

JUST IN TIME COMPILER (JIT)

ABSTRACT SYNTAX TREE (AST)

PHP AST HHBCMACHINE

CODE

JIT

HACK AST HHBCMACHINE

CODE

JIT

ALGUNS GRAFICOS QUE IRÃO TE CONVENCER

REQUISIÇÕES POR MINUTO (REQUISIÇÕES DE RÁPIDA RESPOSTA)

REQUISIÇÕES POR MINUTO (REQUISIÇÕES DE LONGA RESPOSTA)

NÃO SURPREENDIDO?

TEMPO DE RESPOSTA EM MS (REQUISIÇÃO DE RÁPIDA RESPOSTA)

TEMPO DE RESPOSTA EM MS (REQUISIÇÃO DE LONGA DURAÇÃO)

INSTALAÇÃO - DEBIAN BASED deb http://dl.hhvm.com/ubuntu saucy main ! apt-get update! apt-get install hhvm! /etc/init.d/hhvm start!#no config do nginx!location ~ \.php$ {! fastcgi_index index.php;! fastcgi_keep_conn on;! include /etc/nginx/fastcgi_params;! fastcgi_pass 127.0.0.1:9000;! fastcgi_param SCRIPT_FILENAME ! $document_root$fastcgi_script_name;!}

INTALAÇÃO - Mac OS X brew tap homebrew/dupes ! brew tap homebrew/versions! brew tap mcuadros/homebrew-hhvm! brew install hhvm !#no config do nginx!location ~ \.php$ {! fastcgi_index index.php;! fastcgi_keep_conn on;! include /etc/nginx/fastcgi_params;! fastcgi_pass 127.0.0.1:9000;! fastcgi_param SCRIPT_FILENAME ! $document_root$fastcgi_script_name;!}

INSTALAÇÃO - WINDOWS

MAS AINDA FALTA UMA COISA…

HACK

MODOS

STRICT “<?hh /strict ”

PARTIAL “<?hh /partial” - DEFAULT

TYPE ANNOTATIONS

GENERICS

COLLECTIONS

GENERATORS

CLOSURES

ASYNC

OBRIGADO!

contato@leviferreira.com

@leviferreira - github