500 fois plus rapide…

Je lisais dans un doc qu’entre un programme écrit en PHP et un programme écrit en C, il y avait une différence d’un facteur 500 : le programme écrit en C est 500 fois plus rapide que le même programme écrit en PHP.

C’est, comment dire, énorme, monstrueux, incroyable… Bon, vous avez compris l’idée ;).

C’est avec ce type d’infrastructure qu’on se retrouve à devoir aligner des serveurs, comme les petits pains chez le boulanger… Sauf que le prix d’un petit pain n’est pas exactement celui d’un serveur…

Je suis pragmatique, et le PHP est bien souvent un bon choix pour l’entreprise… Mais cela me conforte dans l’idée qu’il y a un vrai chaînon manquant, un système de développement d’application Web réellement efficace, un environnement « green » et économique, parce que très performant.

Bon, de gros acteurs travaillent sur ce type de sujets : Google, Facebook…

11 commentaires

  1. Dans 90% des cas php est suffisamment rapide pour gérer la partie affichage d’un site. Le problème de performance se situe le plus souvent dans l’accès aux données (dbms ou nosql).

    Partant de ce principe choisir un langage scripté comme php ou python est un avantage certain en terme de productivité.

  2. keupoftea> Oui, sauf que bien souvent, le php est utilisé pour aller bien plus loin que l’affichage
    Sauf que l’affichage peut devenir vraiment complexe…

    Enfin, sur certaines plateformes, c’est bien le PHP qui freine les perfs…

  3. Oui c’est pour ça que je dit que php convient dans 90% des cas. Pour le reste c’est des sites à très haut volume pour lesquels les ingénieurs responsables savent en général ce qu’ils font.

    D’autre part il ne faut pas négliger l’impact de l’étape du rendu: souvent le transfert de données commence moins de 500ms après la requête initiale mais les ressources peuvent prendre jusqu’à 10s pour être complètement chargé ( cf les travaux de steve souders sur la question ).

  4. PHP est largement suffisant pour la plupart des sites.
    Cela dit HipHop de Facebook permet compiler du PHP en C++ pour ceux qui veulent augmenter les perfs de leurs applis

    Craig

  5. Yep, je faisais bien référence à HipHop… Mais la génération de code n’est pas une très bonne solution. Cela pose des problèmes de débug

  6. En programmant en assembleur on gagnerait encore plus de temps de traitement !

    Soyons sérieux 2 minutes. La popularité d’un langage ne se mesure pas qu’a sa vitesse d’exécution des instructions. Sa facilité d’écriture, de maintenance, de lisibilité, ses frameworks etc.. sont d’autres critères. L’objet n’a pas été inventé pour aller plus vite dans l’exécution des instructions mais dans l’écriture du code et sa compréhension.

    En ce qui concerne la vitesse d’exécution d’une application le problème est également, comme on le dit souvent, entre la chaise et le clavier. J’ai travaillé sur un batch en java qui prenait plus de 24 heures. Après refactoring (multi threading, redécoupage de l’algo, optimisation) nous sommes passés à 2 heures !

    Je ne dis pas que le choix du langage est à minimiser mais souvent c’est un faux problème. Le choix d’une archi ou d’un framework est plus structurant.

    Je gère actuellement un projet où l’on perd un temps fou dans la communication entre composant de la même appli. A cause de transformations xml inutiles, transformation de modèle, sérialisation etc …

    Pour le green je crois que l’informatique est vraiment le cadet des soucis écologiques. Ce qui compte au yeux du DSI c’est de réduire la facture électrique du datacenter. Apres si en plus il peut dire qu’il fait du green… Et pour réduire la consommation électrique, mieux vaut jouer je pense sur le matériel avant d’aller toucher au code.

  7. @Jérôme> Un langage est un compromis, et il serait débile de revenir à l’assembleur.
    Pour autant, utiliser des technos qui sont 500 fois moins performantes que d’autres fait qu’on peu se poser des questions.

    Maintenant, ce post est pas pour aujourd’hui. C’est plus une « vision stratégique ».

  8. Je suis étonné de ce que je lis, le C en web ca existe et ca marche en mode CGI, ceux qui veulent de la rapidité pure peuvent toujours utiliser cette méthode mais vont perdre beaucoup en souplesse et en possibilités. Néanmoins, lorsque l’on veut gagner en rapidité en PHP il y a une solution très simple, c’est de coder un module PHP en….C ou C++.

  9. Bonjour,

    Toutes les extensions php sont codées en C. Si vous utilisez une extension PECL, c’est du C.
    On code plus rapidement et plus facilement en PHP.
    On code plus performant en C.

    Une approche pragmatique, c’est ce que l’on essai de faire chez nous au fil des mises à jour, est de mixer les deux :
    – Les bibliothèques de fonction PHP très stable qui n’évoluent pas ou très peu et qui on un impact significatif sur les performances sont passées sous forme d’extensions PHP en C
    – Les pages d’affichage, les bibliothèques qui changent fréquemment restent en PHP et sont compilées en langage machine avec des caches d’opcode (comme PHP-APC).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *