NOTÍCIA

Facebook agora utiliza HHVM/JIT em desenvolvimento e produção

Isso oferece ganhos significativos de desempenho para desenvolvedores.

O Facebook anunciou que está utilizando HHMV, uma HipHop VM com compilação JIT, em produção, uma solução que unificou seus ambientes de desenvolvimento e deployment, fornecendo ganhos significativos de desempenho para desenvolvedores.

Por razões de desempenho de carregamento de página, o Facebook decidiu implementar uma cadeia de ferramenta PHPPHP44 conteúdosPadronizando seu código com PHP CS FixerDev (Back & Front) · mai 2019Docker de imagem. Para rodar projetos PHP em menos de 30 segundosDev (Back & Front) · jan 2026PHP 7.3: conheça as novidades desta versãoDev (Back & Front) · abr 2019Ver tudo em Dev (Back & Front) -para-C++, cujo código foi aberto em 2010, sob o nome HipHop PHP, sendo que o compilador se chamava HPHPc. A ferramenta converte PHP em uma Abstract Syntax Tree (AST) e, depois, em C++, que é compilado de forma estática para código binário x64. Enquanto isso aumentava a velocidade das páginas web, tinha impacto no desenvolvimento, já que cada desenvolvedor no Facebook possuía uma cópia completa da árvore de código do site e tinha que esperar que toda a base de código fosse compilada. Devido ao fato de o site ter continuado a crescer a uma taxa elevada, a fase de compilação cresceu para cerca de 10 minutos, o que é muito tempo de espera para um desenvolvedor.

Para resolver o problema, uma decisão foi tomada para manter o compilador para código de produção e criar um interpretador (HPHPi) para desenvolvimento, que deveria eliminar o longo tempo de compilação. O resultado foi que esse ambiente de produção se tornou diferente do de desenvolvimento, e um dos problemas foi o uso de diferentes ASTs por razões de desempenho, o que tornou o HPHPi mais lento que o mecanismo Zend usado anteriormente, que trazia HipHop, segundo Drew Paroski, um engenheiro da rede social.

Para esse novo problema, uma pequena equipe de engenheiros do Facebook desenvolveu uma máquina virtual chamada HHVM (HipHop VM), e ela tem sido usada desde 2011. Depois de vários meses de modulação do JIT, o HHVM foi introduzido em produção para oferecer código implementado, e Paroski anunciou que o HHVM alcançou o HPHPc, e até o ultrapassou em tempo de carregamento de página. Isso significa que o desenvolvimento e o deployment agora utilizam um ambiente unificado no Facebook, com espaço para melhorias de desempenho, à medida que o mecanismo JIT fica mais modulado.

Segundo Paroski, o HHVM permite que os desenvolvedores tenham um alcance maior de estratégias de otimização para sua pilha de desenvolvimento PHP, desde tempo de execução e APIs de bibliotecas até códigos que eles geram. Ele acrescentou que o HHVM executa programas PHP ao converter o fonte do PHP em bytecode HipHop, e executa o bytecode usando um interpretador de bytecode e um compilador JIT x64 que operam em conjunto continuamente. O JIT é usado onde for possível, e o interpretador é utilizado como um mecanismo de execução de último recurso.

O Facebook abriu o código do HHVM e substituiu o HPHPi, além de ter removido o suporte para construí-lo. Eles também irão cancelar o suporte para HPHPc na metade de 2013. Há pacotes pré-construídos do HHVM para Ubuntu 12.04 e instruções para CentOS 6.3, enquanto o suporte para FreeBSD 9 e Mac OS acontecerá até o próximo ano, quando o HPHPc for aposentado.

Com informações de Info Q

Matérias especiais e reportagens conduzidas internamente pela Redação iMasters. Acompanhe no Twitter @imasters e no Instagram/Threads @portalimasters

Ver perfil