HipHop para PHP

| |
|

Es una propuesta de Haiping Zhao quien junto a un pequeño equipo han destinado 2 años para optimizar la plataforma de PHP. Esta tecnología, no es más que  un  transformador de código fuente (un optimizador) ,eso significa que toma el PHP, lo transforma a C++ y lo compila con (GNU GCC). HipHop ejecuta el código fuente de una manera semánticamente equivalentes y sacrifica algunos rasgos que rara vez se utilizan – como eval () – a cambio de un mejor rendimiento. HipHop incluye un transformador de código, una re implementación del sistema de ejecución de PHP, y una reescritura de las extensiones de PHP muchos puntos en común para tomar ventaja de estas optimizaciones de rendimiento. Este código C++ se ejecuta como extensión de PHP, es decir, lo que se ejecuta es una dll, un binario ejecutable, y no se tiene que interpretar el código cada vez que se hace una petición. La novedosa tecnología  ha sido probada y aplicada a  Facebook  (actualmente sirve  90% de su contenido con HipHop), que tiene una cifra de 400.000.000.000 páginas, que  como muchos otros sitios web de alta demanda, fue escrito en el lenguaje PHP.

La necesidad para iniciar este proyecto fueron las siguientes:
  1. PHP tiene un alto uso del CPU.
  2. PHP tiene un alto consumo de memoria.
  3. Reusar la lógica de PHP en otros sistemas.
  4. Las extensiones son difíciles de escribir para la mayoría de los programadores de PHP.
El proceso de transformación incluye tres pasos principales:
  1. Análisis estático, se recopila información del código PHP, declaraciones, dependencias, inclusiones.
  2. Inferencia de tipos, se transforman  los tipos de datos PHP a sus equivalentes en  C++.
  3. La generación de código, que en su mayor parte es una correspondencia directa de las declaraciones en PHP  a declaraciones C++.

Principales desventajas de HipHop PHP:
  1. No es compatible con Apache.
  2. Utilizan  un servidor web especializado realizado por su equipo desarrollo.
  3. Si el código hace uso de funciones PHP propias de lenguajes dinámicos, como eval(), o create_function(), HipHop no será capaz de transformar el código fuente.
  4. No es multiplataforma, funciona solamente con GNU /Linux.
Principales ventajas de HipHop PHP:
  1. Reduce el uso del CPU hasta en un 50%, comparado con Apache y PHP.
  2. Hace que Facebook sirva dos veces más tráfico usando 30% menos CPU.
  3. Transformación del código  fuente de PHP directamente en C++, convirtiéndolo  en código máquina nativo.
Rasmus Lerdof, creador de PHP, lo ha calificado como un truco ingenioso. Ha dicho, como hace a veces con los frameworks, que está muy bien, que evidentemente para Facebook puede valer, pero hay que trabajar mucho todavía para que funcione en todos los proyectos realizados en PHP.

HPHPi
Además de HipHop, el equipo desarrollo de  Facebook  creo  HPHPi, que es un intérprete experimental diseñado para la etapa de desarrollo de nuevas funcionalidades para Facebook. Con HPHPi no es necesario compilar el código de PHP antes de ejecutarlo en HipHop, permitiendo de esta manera detectar errores prematuramente sin cambiar la forma en la que codifican con PHP.
Los próximos planes para HipHop incluyen agregar soporte para PHP 5.3 (actualmente soporta PHP 5.2), soportar Apache como una opción (actualmente incluye su propio servidor web) y evolucionar de acuerdo a su uso y aplicación afuera de Facebook.

Espero que les sirva, Liber

0 comentarios:

Publicar un comentario en la entrada