HHVM - HHVM

HHVM
Logotipo HHVM, com letras maiúsculas brancas "HHVM" em um fundo preto, com formas geométricas triangulares estilizadas à esquerda
Desenvolvedor (s) Facebook, Inc.
lançamento inicial 9 de dezembro de 2011 ; 9 anos atrás ( 09-12-2011 )
Versão estável 4.32.x (19 de novembro de 2019 ; 22 meses atrás ) [±] ( 19/11/2019 )
Repositório
Escrito em PHP , C ++ , OCaml e Rust
Licença Licença PHP e licença Zend
Local na rede Internet hhvm .com Edite isso no Wikidata

HipHop Virtual Machine ( HHVM ) é uma máquina virtual de código aberto baseada na compilação just-in-time (JIT) que serve como um mecanismo de execução para a linguagem de programação Hack e usada para suportar a execução de PHP antes do lançamento do HHVM versão 4. Por usando o princípio da compilação JIT, o código Hack é primeiro transformado em bytecode HipHop intermediário ( HHBC ), que é então traduzido dinamicamente em código de máquina x86-64 , otimizado e executado nativamente. Isso contrasta com a execução interpretada usual do PHP , na qual o Zend Engine transforma o código-fonte do PHP em opcodes que servem como uma forma de bytecode e executa os opcodes diretamente na CPU virtual do Zend Engine .

O HHVM é desenvolvido pelo Facebook , com o código-fonte do projeto hospedado no GitHub ; ele é licenciado sob os termos da Licença PHP e Licença Zend .

Visão geral

O HHVM foi criado como o sucessor do mecanismo de execução de PHP HipHop para PHP (HPHPc), que é um transpilador de PHP para C ++ também criado pelo Facebook. Com base na experiência adquirida e com o objetivo de resolver problemas introduzidos pelo HPHPc, o Facebook decidiu no início de 2010 criar uma máquina virtual PHP baseada em JIT . Os problemas associados ao HPHPc incluem atingir um patamar para melhorias de desempenho adicionais, falta de suporte completo para todos os recursos da linguagem PHP e dificuldades decorrentes de processos específicos de desenvolvimento e implantação que consomem tempo e recursos necessários para projetos PHP que usam HPHPc. No primeiro trimestre de 2013, a versão de produção do site facebook.com parou de usar HPHPc e mudou para HHVM.

Seguindo o princípio de compilação JIT, o HHVM primeiro converte o código PHP ou Hack executado em um bytecode de alto nível , HHBC, que também é conhecido como linguagem intermediária . HHBC é um formato de bytecode criado especificamente para HHVM, em um formato apropriado para o consumo por intérpretes e compiladores just-in-time. Como as próximas etapas da execução, o HHVM dinamicamente ("just-in-time") traduz o bytecode HHBC em código de máquina x86-64, realiza suas otimizações adicionais por meio de uma análise dinâmica do bytecode traduzido e executa o código de máquina x86-64 . Como resultado, o HHVM tem certas semelhanças com as máquinas virtuais usadas por outras linguagens de programação, incluindo o Common Language Runtime (CLR, para a linguagem C # ) e a máquina virtual Java (JVM, para a linguagem Java ).

O HHVM traz muitos benefícios em comparação com o HPHPc, e um deles é o suporte quase completo para toda a linguagem PHP conforme definido pela implementação oficial do PHP versão 5.4, incluindo o suporte do HHVM para create_function()e eval()construções. Além disso, o HHVM usa o mesmo mecanismo de execução quando implantado em ambientes de produção e desenvolvimento, ao mesmo tempo que oferece suporte à integração entre o mecanismo de execução e o depurador HPHPd em ambos os tipos de ambiente; como resultado, não é mais necessário manter o HPHPi (interpretador HipHop) separadamente como um utilitário de desenvolvimento, como acontecia com o HPHPc. O HHVM também elimina as longas compilações exigidas pelo HPHPc para executar programas PHP, resultando em processos de desenvolvimento e implantação muito mais simples do que no caso do HPHPc.

Juntamente com HHVM, Facebook também libertado corte , um derivado de PHP que permite que os programadores para usar tanto tipagem dinâmica e tipagem estática , que é um conceito também conhecido como gradual digitação , e permite que tipos de ser especificados para a função argumentos , função de valores de retorno , e propriedades da classe ; no entanto, os tipos de variáveis ​​locais não podem ser especificados. Ao mesmo tempo, o Hack não fornece compatibilidade completa com versões anteriores , pois não carrega alguns dos recursos do PHP, como gotoinstruções e nomes de variáveis dinâmicas .

Em setembro de 2017, foi anunciado que a versão 3.24 seria a última versão do HHVM a oferecer suporte oficial ao PHP, e que o HHVM só oferecerá suporte ao Hack daqui para frente, citando diferenças e incompatibilidades no PHP 7.

atuação

Como uma máquina virtual de processo que fornece o ambiente de execução, o HHVM tem a capacidade de usar informações de tipo ao vivo para produzir código nativo mais eficiente , levando a um maior rendimento do servidor da web e menor latência . No quarto trimestre de 2012, a execução do código-fonte do facebook.com no HHVM alcançou paridade de desempenho com o HPHPc e, em dezembro de 2013, o HPHPc foi ultrapassado em cerca de 15%.

Veja também

Notas

Referências

links externos