Facebook nos presenta HipHop for PHP

Ayer hablabamos que el compilador de PHP era un JIT.

Hoy podemos obtener más información gracias a vivaPHP!

Según el ingeniero Haiping Zhao, HipHop for PHP les permitió reducir un 50% el uso de sus CPU lo cual implica un mejor rendimiento en la aplicación Facebook.

Hip Hop for PHP lleva ya 2 años de desarollo, pero reconocen que aún no está finalizado y que la actual versión puede considerarse una beta.
Se ha liberado bajo la misma licencia de PHP lo que permitirá a la comunidad acabar el desarollo de la aplicación dando su punto de vista y sus ideas.

Zhao nos explica que es realmente HipHop:

“HipHop no es técnicamente un compilador. En su lugar es un transformador de código. HipHop transforma tu código fuente PHP en un altamente optimizado código C++ y luego usa g++ (GNU C++) para compilarlo. HipHop ejecuta el código fuente en una manera semánticamente equivalente y sacrifica algunas características raramente usadas -como eval()- a cambio de una performance mejorada. HipHop incluye el transformador de código, una reimplementación del runtime de PHP y una re-escritura de varias extensiones de PHP comunes para aprovechar estas optimizaciones”.

Fuente: vivaPHP!
5 Responses
  1. jola Says:

    Podrías esperar a que yo lea la ultima entrada y así luego postear mas no ? que se me hace difícil leer 4 entradas de una vez luego se me olvida donde dejo el comentario [CC] XD


    Ahora bien, esto suena interesante.. PHP es interpretado esto que hace ? pasar php a un binario ?

    Umm para que ?

    Para ejecutarlo en linux o windows supongo ?

    Para que el code no lo vea nadie...

    Esta muy interesante, e visto una que otra aplicación interesante en php, pero como para pasarla a c++ no se...

    Esto sería como para migrar una aplicación php a aplicación de escritorio.

    Aunque aun no le veo utilidad en mis planes y tampoco con que fin productivo lo desarrollaron.


    Nos vemos.

    Ubuntero ¬¬


  2. nax Says:

    bueno lo que hace básicamente es pasarlo a c++ y luego a g++ si no recuerdo mal ....

    con todo ello se crea un pre-compiler con un código limpio y eficaz lo que hace es mejorar el rendimiento...
    según facebook mejoraron el uso de cpu un 50% lo cual es bastante significante en un sitio que recibe tanto tráfico.
    a nivel programador yo creo que no afecta en nada... el sistema de trabajo y ejecución es igual solo cambian esos procesos que no vemos y mejoran el rendimiento


  3. Anónimo Says:

    ummm

    Osea que puedes pasar el code de php y seguir ejecutando la página.

    A ver si me explico.

    Facebook pretende pasar su codigo a c++ con el compilador de Gnu g++ ?

    Y con eso aumentar el rendimiento.

    O sea que sera una página hecha en c++ o en gran mayoría supongo, o por lo menos el motor principal de la página.

    Y sera para usar mas que nada en linux ? o servidores con linux.

    A lo que voy es que se podrán tener páginas web mas rápidas o por lo menos en el sentido de servidores menos saturados con gran numero de peticiones como facebook.

    Mejora el motor de facebook, como sería aplicarlo a google.. que ya esta muy optimizado y creo que google tiene muchas herramientas optimizadoras de code que aun no liberan.

    No creo que google use las herramientas convencionales, con su poder intelectual de mas de 5 mil programadores, creo que tendrían herramientas mejores que estas.

    Aunque ya esto va por otro lado pero bueno...

    Me parece excelente la aplicación.

    Aunque aun no me quedan claro algunas cosas pero ya leere por ahí.

    Aunque se tiene que poder usar con cualquier code de php ? vbulletin, smf, para optimizar un poco mas.

    Aunque ya compilado el code no sera interpretado y creara un binario seguramente y para hacer modificaciones al mismo ?? abra que recompilar todo luego ?


    Ummm buen post.


    Nos vemos

    Ubuntero


  4. nax Says:

    piensa que no es compilado...

    es una combinacion de JIT y pre-compilación

    lo que hace es que cuando haces una peticion precompila el code a c++ con g++ de gnu...

    y eso le ofrece una mayor velocidad según parece...

    lo que dices de google.. creo que usan python o perl (no recuerdo) y no se si usan php (en algunas cosas si pero en otras ni idea)

    saludos
    nax


  5. Anónimo Says:

    Ahh entiendo ahora, no es que el code este compilado, es que funciona como un motor, o sea que trabaja solo cuando hay peticiones, haces la peticion y hiphop trabaja, pero claro estara cacheado o algo para mas velocidad.. pero bueno...

    Y google si usa mucho python.. google earth y esas cosas su motor esta hecho en python.

    Va nos vemos gracias por la aclaracion, buen blog.

    Por cierto que paso con el sidebar este de la derecha ? donde esta el blogroll, antes cambian de posición los enlaces siempre que se posteaba en el blog era interesante la opción :)


    Ubuntero