Facebook & PHP II: HipHop et HPHPi

Apprenez en plus dans le nouvel article, HipHop pour PHP, qu’est-ce que c’est ?

Comme prévu et annoncé dans l’article précédent “Facebook + PHP = Hyper-PHP”, l’équipe de développement de Facebook a bien annoncer son projet de faire une sorte de compilateur pour PHP cet après-midi, vous pouvez la retrouver en anglais à cette adresse.

Ce n’est en fait pas sous le nom de Hyper-PHP que les développeurs de Facebook ont décider de sortir leur moteur, mais sous le nom de HipHop, accompagné de HPHPi.

Facebook n’a en réalité pas tout à fait réécrit PHP depuis le début, mais a décidé de créer une extension PHP qui transforme un code PHP en un code C++, puis qui le compile. HipHop, c’est le nom du module/programme/de l’extention PHP qui va transformer votre code PHP en code C++, puis le compiler en utilisant le traditionnel g++. HPHPi, lui, permet de ne pas avoir à mettre en place un système de compilation en plus, et d’avoir simplement a utiliser PHP comme avant, mais en beaucoup plus rapide.

Les chiffres ont néanmoins changer car on ne parle ici que d’une diminution de 50%contre 80% d’après les rumeurs précédentesde la consommation du CPU, sans même avancer de chiffres d’augmentation de performances, même si il est tout de même le sujet de tout l’article de Facebook, c’est donc sans douter que ça a très certainement un gros bénéfice, puisque Facebook.com l’utilise déjà sur près de 90% de ses serveurs!

À noter tout de même que dans l’article, il est précisé que des fonctions sont perdues, comme la fonction eval par exemple (ce n’est pas plus mal pour celle-ci) et que l’équipe de développement a réécrit de nombreuses extensions pour les adapter à leur HipHop PHP, ce qui fera sans aucun doute que cette innovation pour PHP ne sera pas ajoutée à PHP, contrairement aux caches OPCodes qui le seront pour PHP 6, et restera un projet distant externe à PHP pour un petit moment.

C’est donc à tester sans attendre, lorsque que les sources seront disponibles dans la nuit (fin d’après-midi chez nos amis américains) à cette adresse, qui ne marchera que lorsque les sources seront disponibles:

Dès possible je ferais des tests et des benchmarks, que je ne manquerait pas de diffuser ici.

facebooktwittergoogle_plusredditpinterestlinkedinmail

Performances de votre site, au delà du code PHP

Cet article s’agit d’une retranscription de la conférence de Eric Daspet au Forum PHP 2008.

Quelques chiffres

En 2003, les pages HTML faisait en moyenne 100Ko (images comprises) et impliquaient une centaine de composants.

Aujourd’hui, fin 2008, les pages font en moyenne 300 Ko pour 300 composants, soit une augmentation assez conséquente.

D’après les calculs Google, un diminution de 30% du poids de la page (entrainant bien évidement une baisse conséquente de trafic et de temps de chargement) produit chez eux une augmentation de du trafic de 30%, ce qui montre l’importance du temps de chargement de la page pour les utilisateurs. En effet, même inconsciemment, tous les utilisateurs de site web choisissent et préfèrent un site web rapide à charger qu’une bibliothèque d’images… Continue reading Performances de votre site, au delà du code PHP

facebooktwittergoogle_plusredditpinterestlinkedinmail

Performances PHP: Arguments IF

Je fait ce petit article très court pour vous aider à optimiser (légerement peut-être mais bon…) vos arguments de conditions. Je vais parler ici du cas d’un IF valable si un ou plusieurs arguments parmis tous sont à “true” :

Ce script va donc afficher “OK” si la variables $arg1 == true OU si la constante arg2 == true OU si la fonction arg3 renvoi “true”.
Si $arg1 == true, PHP va directement s’arrêter de vérifier les conditions et va exécuter ce qu’il y a dans le IF.
Sinon, si arg2 == true, PHP va directement s’arrêter de vérifier les conditions et va exécuter ce qu’il y a dans le IF.
Sinon, si arg3() == true, PHP va directement s’arrêter de vérifier les conditions et va exécuter ce qu’il y a dans le IF.
etc… Continue reading Performances PHP: Arguments IF

facebooktwittergoogle_plusredditpinterestlinkedinmail