WEB2007 ALSO SPEAKS ENGLISH
06 44 00 14 84 (ou 0033644001484)

* Drupal Strasbourg




***Web2007 est un bureau indépendant situé à Genève et a l'habitude de travailler pour des entreprises PARTOUT en France et en Europe

Drupal Strasbourg





Article:

On peut optimiser un programme à plusieurs degrés :
En optant pour un algorithme de complexité inférieure (au sens mathématique) et des structures de données adaptées ;
Au niveau du langage de développement, en ordonnant au mieux les instructions et en se servant des bibliothèques disponibles ;
En utilisant régulièrement un langage de bas niveau, qui peut être le langage C ou, pour les besoins les plus délicats, le langage assembleur.
On gravit l'échelon d'optimisation une fois qu'on a acheminé les possibilités d'un niveau. l'utilisation d'un langage de bas niveau sur l'ensemble d'un projet pour des raisons de rapidité est l'une des erreurs les plus communes et les plus coûteuses que puisse faire un projet industriel.
Plusieurs développeurs amateurs perçoivent l'optimisation de code comme un art un peu magique et comme l'une des parties les plus excitantes de la programmation. Nous pensons alors qu'un bon programmeur est une personne qui réforme d'emblée le programme. Cependant l'expérience montre qu'elle ne peut pallier une mauvaise conception initiale. C'est dans la conception que l'expérience du développeur joue le plus. Par ailleurs, dans un nombre majoritaire et grandissant de cas, le « bon programmeur » est moins celui qui écrit du code astucieux (l'optimiseur s'en chargera le plus souvent mieux que lui) que celui qui écrit du code lisible et aisé à maintenir.
Une parfaite connaissance des algorithmes (même sans aller jusqu'aux considérations théoriques poussées de la complexité algorithmique) se montre bien plus féconde que celle d'un langage d'assemblage. Quand on a déterminé l'algorithme le plus approprié, les optimisations les plus efficaces peuvent être obtenues en utilisant le chemin suivant :
Écriture du code critique dans un langage de haut niveau (comme Scheme ou Common Lisp) ;
Application de transformations mathématiques successives qui garantissent la spécification du programme tout en réduisant la consommation des ressources ;
Traduction du code converti dans un langage de bas niveau (langage C).
Dans la pratique, les performances des machines actuelles font que des applications comportant beaucoup d'entrées-sorties lentes peuvent faire l'économie de ces trois étapes et se rédiger directement dans un langage comme Haskell. l'application nget moissonne systématiquement les images publiées dans les forums Usenet. La version en C n'en a été qu'une traduction qui ne se révèle pas plus performante pour ce type d'application. Une application limitée principalement par le CPU et la vitesse de la mémoire par contre pourra gagner énormément à être écrite dans un langage tel que le C ou le C++.






****Web2007 est un bureau indépendant situé à Genève et a l'habitude de travailler pour des entreprises PARTOUT en France et en Europe