stringtranslate.com

MHHVM-español:Hijo ...

HipHop Virtual Machine ( HHVM ) es una máquina virtual de código abierto basada en compilación just-in-time (JIT) que sirve como motor de ejecución para el lenguaje de programación Hack . Al utilizar el principio de compilación JIT, el código Hack se transforma primero en código de bytes intermedio HipHop ( HHBC ), que luego se traduce dinámicamente a código de máquina x86-64 , se optimiza y se ejecuta de forma nativa. [7] [8] Esto contrasta con la ejecución interpretada habitual de PHP , en la que Zend Engine transforma el código fuente de PHP en códigos de operación que sirven como una forma de código de bytes y ejecuta los códigos de operación directamente en la CPU virtual de Zend Engine . [9]

HHVM es desarrollado por Meta , con el código fuente del proyecto alojado en GitHub ; [10] está licenciado bajo los términos de la Licencia PHP y la Licencia Zend . [1] [6]

Descripción general

HHVM fue creado como sucesor del motor de ejecución PHP HipHop para PHP (HPHPc), que es un transpilador de PHP a C++ también creado por Facebook. [11] [12] Basándose en la experiencia adquirida y con el objetivo de resolver los problemas introducidos por HPHPc, Meta decidió a principios de 2010 crear una máquina virtual PHP basada en JIT . Los problemas asociados con HPHPc incluían alcanzar una meseta para futuras mejoras de rendimiento, una incapacidad fundamental para soportar todas las características del lenguaje PHP y dificultades derivadas de procesos específicos de desarrollo e implementación que consumen tiempo y recursos. [11] En el primer trimestre de 2013, la versión de producción del sitio web facebook.com dejó de usar HPHPc y cambió a HHVM.

Siguiendo el principio de compilación JIT, HHVM primero convierte el código ejecutado en un lenguaje intermedio , el bytecode de alto nivel HHBC. HHBC es un formato de bytecode creado específicamente para HHVM, apropiado para el consumo tanto de intérpretes como de compiladores just-in-time. A continuación, HHVM traduce dinámicamente ("just-in-time") el HHBC en código de máquina x86-64, optimizado a través del análisis dinámico del bytecode traducido. Finalmente, ejecuta el código de máquina x86-64. [1] [11] [13] Como resultado, HHVM tiene ciertas similitudes con las máquinas virtuales utilizadas por otros lenguajes de programación, incluido Common Language Runtime (CLR, para el lenguaje C# ) y la máquina virtual Java (JVM, para el lenguaje Java ).

HHVM aporta muchas ventajas en comparación con HPHPc. HHVM utiliza el mismo motor de ejecución cuando se implementa en entornos de producción y desarrollo, a la vez que admite la integración entre el motor de ejecución y el depurador HPHPd en ambos tipos de entornos; como resultado, ya no es necesario mantener HPHPi (intérprete de HipHop) por separado como una utilidad de desarrollo, como era el caso con HPHPc. HHVM también elimina las largas compilaciones requeridas por HPHPc para ejecutar programas, lo que resulta en procesos de desarrollo e implementación mucho más simples que en el caso de HPHPc. [1] Finalmente, las versiones de HHVM anteriores a la 4.0 tienen soporte casi completo para todo el lenguaje PHP (como se define en la implementación oficial de la versión 5.4 de PHP), incluido el soporte para las construcciones y , lo que era imposible con HPHPc. [14] [15]create_function()eval()

Junto con HHVM 3.0, [16] Meta también lanzó Hack , un derivado de PHP [17] [18] que permite a los programadores usar tanto tipado dinámico como tipado estático (un concepto también conocido como tipado gradual ), y permite especificar tipos para argumentos de función , valores de retorno de función y propiedades de clase . Sin embargo, Hack no proporciona compatibilidad completa con versiones anteriores ya que elimina varias características de PHP, como la declaración y los nombres de variables dinámicas . [19] [20] [21] [22]goto

En septiembre de 2017, se anunció que la versión 3.30 sería la última versión de HHVM que soportaría oficialmente PHP, y que HHVM solo soportaría Hack en el futuro. [23] Esto se debió a diferencias e incompatibilidades en PHP 7. [24] HHVM 4.0, lanzado en febrero de 2019, fue la primera versión sin soporte para PHP. [25]

Actuación

Como máquina virtual de procesos que proporciona el entorno de ejecución, HHVM tiene la capacidad de utilizar información de tipos en vivo para producir código nativo más eficiente , lo que genera un mayor rendimiento del servidor web y una menor latencia . En el cuarto trimestre de 2012, la ejecución del código fuente de facebook.com en HHVM alcanzó la paridad de rendimiento con HPHPc, [11] y en diciembre de 2013, HPHPc incluso fue superado en alrededor del 15 %. [26]

Véase también

Notas

  1. ^ Solo las utilidades de línea de comandos y los demonios de verificación de tipos ( hh_server y hh_client ) y de formateo de código ( hh_format ) de Hack incluidos con la máquina virtual HipHop están escritos en OCaml .

Referencias

  1. ^ abcd Jason Evans (9 de diciembre de 2011). «The HipHop Virtual Machine». Meta Platforms . Consultado el 2 de agosto de 2014 .
  2. ^ "Versión 3.15.0". 28 de septiembre de 2016. Consultado el 13 de marzo de 2018 .
  3. ^ "Creación e instalación de HHVM en CentOS 7.x". github.com . Meta Platforms . 26 de mayo de 2015 . Consultado el 12 de junio de 2015 .
  4. ^ "Construyendo el corrector de tipos Hack". github.com . Meta. 10 de septiembre de 2014 . Consultado el 12 de junio de 2015 .
  5. ^ "HHVM de Facebook comienza a ver una reescritura de Rust - Phoronix" . Consultado el 29 de agosto de 2019 .
  6. ^ ab "facebook/hhvm: Licencia". github.com . Facebook, Inc. Consultado el 2 de agosto de 2014 .
  7. ^ Ottoni, Guilherme (20 de junio de 2018). "HHVM JIT: un compilador basado en regiones y guiado por perfiles para PHP y Hack". Actas de la 39.ª Conferencia SIGPLAN de la ACM sobre diseño e implementación de lenguajes de programación (PLDI) . ACM . págs. 151–165.
  8. ^ "facebook/hhvm". github.com . Meta Platforms . Consultado el 2 de agosto de 2014 .
  9. ^ Kaushik Pal (28 de abril de 2014). «Conceptos internos de PHP y Zend Engine». phpbuilder.com . Archivado desde el original el 15 de septiembre de 2014. Consultado el 23 de septiembre de 2014 .
  10. ^ Código fuente de HHVM en GitHub
  11. ^ abcd Drew Paroski (29 de noviembre de 2012). "Aceleración del desarrollo basado en PHP con HHVM". Meta Platforms . Consultado el 2 de agosto de 2014 .
  12. ^ "Anuncio en GitHub que elimina el soporte para HPHPc". github.com . Meta Platforms . 19 de febrero de 2013 . Consultado el 24 de mayo de 2013 .
  13. ^ "HipHop Bytecode v1 revision 18". github.com . Meta Platforms . 31 de julio de 2014 . Consultado el 24 de mayo de 2013 .
  14. ^ "facebook/hhvm: Acerca de la actualización al motor PHP 5.4". github.com . Mayo de 2013 . Consultado el 2 de agosto de 2014 .
  15. ^ "facebook/hhvm: Home". github.com . Meta Platforms . 8 de mayo de 2014 . Consultado el 2 de agosto de 2014 .
  16. ^ Paul Tarjan (28 de marzo de 2014). «HHVM 3.0.0». Facebook . Consultado el 26 de diciembre de 2022 .
  17. ^ Cade Metz (20 de marzo de 2014). "Facebook presenta 'Hack', el lenguaje de programación del futuro". Wired . Consultado el 15 de abril de 2014 .
  18. ^ Julien Verlaguet; Alok Menghrajani (abril de 2014). "Hack: un nuevo lenguaje de programación para HHVM". code.facebook.com . Facebook . Consultado el 23 de marzo de 2014 .
  19. ^ Josh Lockhart (3 de abril de 2014). "Facebook's Hack, HHVM, and the future of PHP". O'Reilly Media . Consultado el 2 de agosto de 2014 .
  20. ^ "Hack y HHVM: Anotaciones de tipo (Manual de Hack)". docs.hhvm.com . Consultado el 25 de marzo de 2014 .
  21. ^ "Hack y HHVM: Inferencia de tipos (Manual de hack)". docs.hhvm.com . Archivado desde el original el 26 de marzo de 2014 . Consultado el 25 de marzo de 2014 .
  22. ^ "Hack y HHVM: características PHP no admitidas en Hack (Manual de Hack)". docs.hhvm.com . Archivado desde el original el 4 de noviembre de 2015 . Consultado el 2 de abril de 2014 .
  23. ^ Fred Emmott (12 de septiembre de 2018). «El fin del soporte de PHP y el futuro de Hack» . Consultado el 26 de diciembre de 2022 .
  24. ^ Krill, Paul (20 de septiembre de 2017). «¡Olvídense de PHP! El motor HHVM de Facebook cambia a Hack». InfoWorld . Consultado el 6 de febrero de 2019 .
  25. ^ Fred Emmott (11 de febrero de 2019). «HHVM 4.0.0» . Consultado el 26 de diciembre de 2022 .
  26. ^ "Somos el 98,5% (y el 16%)". hhvm.com . 19 de diciembre de 2013 . Consultado el 2 de agosto de 2014 .

Enlaces externos