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

* Joomla 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

Joomla Strasbourg





Article:

On peut mettre à jour un programme à plusieurs niveaux :
En préférant un algorithme de complexité inférieure (au sens mathématique) et des structures de données justes ;
En aménageant au mieux les instructions et en utilisant les bibliothèques disponibles ;
En utilisant localement un langage de bas niveau, qui peut être le langage C ou, pour les besoins les plus critiques, le langage assembleur.
Le niveau supérieur d'optimisation est approché lorsqu'on a écrasé 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.
l'optimisation de code se présente pour beaucoup de développeurs amateurs comme un art un peu magique et, pour cette raison, comme l'une des parties les plus impressionnantes de la programmation. Ceci les amène à supposer qu'un bon programmeur est une personne qui optimise d'emblée le programme. Cependant l'expérience montre qu'elle ne peut pallier une mauvaise conception initiale. 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 bonne appréhension des techniques de structures de données ainsi que des algorithmes (même sans aller jusqu'aux considérations théoriques poussées de la complexité algorithmique) parait bien plus féconde que celle d'un langage d'assemblage. Lorsqu'on a déterminé l'algorithme le plus adéquat, les optimisations les plus agissantes 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 constantes qui protègent la spécification du programme tout en réduisant la consommation des ressources ;
Traduction du code modifié dans un langage de bas niveau (langage C).
En clair, les performances des machines actuelles permettent aux applications d'appréhender 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 bien connue nget, qui moissonne systématiquement les images publiées dans les forums Usenet, avait dans sa première implémentation été écrite en Haskell. La version en C n'en a été qu'une traduction qui ne se révèle pas plus compétitive pour ce type d'application. Une application bornée notamment par le CPU et la vitesse de la mémoire par contre pourra profiter é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