dimanche 18 novembre 2012

Performances des logiciel en rapport avec le framework

  Beaucoup de développeur pensent que l’utilisation d’un framework ne peut que dégrader les performances d’une application. Ce n’est pas tout à fait exact.
     Il est vrai qu’il existe en informatique un compromis très ancien et très habituel entre la qualité de l’architecture logicielle et des outils de développement d’une part, et les performances d’autre part. Avec le
temps, ce compromis finit toujours par être tranché en faveur des outils de développement, car la CPU coûte de moins en moins cher, tandis que l’heure de programmeur coûte de plus en plus cher. C’est cette logique
qui veut que nous ne développions plus en assembleur, bien que cela puisse être plus performant.



     Par cette analyse, on pourrait dire : oui, un développement basé sur un framework sera peut-être moins performant, mais ça n’est pas grave, car les gains attendus en termes de productivité, de qualité, de robustesse et de maintenabilité sont tellement plus importants au final.

     Mais il faut souligner aussi qu’un framework peut, bien souvent, faire gagner aussi sur le plan des performances. Cela simplement parce qu’il met à disposition du développeur des structures de code plus
complexes et plus optimisées que ce qu’il aurait produit seul. L’exemple le plus parlant est bien sûr celui d’un bon gestionnaire de cache, que ce soit sur des objets obtenus d’une base de données, ou bien sur des
fragments de page Html : là où un programmeur sans framework aurait eu du mal à réaliser son propre cache de manière complète et fiable, il dispose de classes prêtes à l’emploi qui amélioreront de manière
extraordinaire les performances de son application.
     Avec PHP, le principal facteur de dégradation des performances vient de ce qu’il faut, à chaque requête, déclarer les différents modules, charger la configuration ou convertir en PHP des templates qui utilisent une
syntaxe spécifique.


     Les frameworks utilisent plusieurs mécanismes pour minimiser cet impact sur les performances :

Sélection des modules : le développeur peut définir les modules à utiliser dans une requête en fonction de la page concernée.
Autoload : utilisation des nouvelles fonctionnalités de PHP5 qui permettent de déclarer des classes ou des modules uniquement au moment de leur utilisation.
Cache : les fichiers de configuration et les templates non PHP sont traités et convertis dans leur équivalent PHP afin d’être ensuite intégrés de façon beaucoup plus performante lors de chaque requête.
Au final, l’impact est donc faible dans la plupart des cas.

Aucun commentaire:

Enregistrer un commentaire