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