* Agence Typo3 Saint Etienne
***Web2007 est un bureau indépendant situé à Genève et a l'habitude de travailler pour des entreprises PARTOUT en France et en Europe
Agence Typo3 Saint Etienne
Article:
En programmation informatique, l'optimisation est regardée comme la pratique qui permet de réduire le temps d'exécution d'une fonction, l'espace utilisé par les données et le programme, ou la consommation d'énergie. L'optimisation ne doit apparaitre qu'une fois que le programme convient aux spécifications fonctionnelles. l'expérience montre qu'apposer des optimisations de bas niveau du code avant que ces deux conditions ne soient réalisées revient le plus souvent à une perte de temps et s'avère néfaste à la clarté du code et au bon fonctionnement du programme Du moins, cette règle ne doit s'appliquer qu'aux optimisations locales, de bas niveau (réécriture en assembleur, déroulage de boucle, etc.) et pas aux optimisations de haut niveau concernant le choix des algorithmes ou l'architecture d'un projet. Ces optimisations de haut niveau seront pénibles et coûteuses (en termes de temps, difficulté et budget), voire impossible, à effectuer, plus le projet grandit et plus. La plupart des compilateurs nouveaux pratiquent de façon automatique un certain nombre d'optimisations qu'il serait épuisant d'effectuer manuellement et qui rendraient le code source moins lisible. l'optimisation manuelle locale captive des cas très spécifiques ; seulement, les mesures montrent que sur des machines RISC qui disposent un nombre élevé de registres et où l'efficacité demande le regroupement des instructions identiques pour jouir de l'effet pipeline, l'optimiseur d'un compilateur C fournit souvent un code plus efficace que celui qui serait écrit en assembleur par un programmeur expérimenté (ce qui n'était jamais le cas sur les machines CISC). Et de surcroit ce code est bien plus facile à maintenir, car les instructions en C restent dans un ordre lié à la seule intelligibilité du code et non aux spécificités de la machine : dans les optimiseurs actuels, en effet, les ordres machines associés à une instruction ne se trouvent plus certainement en position contiguë, pour des raisons d'efficacité d'exécution. Prière de calculer la vitesse du code avant de déclencher l'optimisation en optant pour un paramètre, de préférence simple et mesurable. Ceci peut être par exemple le temps de traitement sur un jeu de donnée précis, ou le nombre d'images affichées par seconde, ou encore le nombre de requêtes traitées par minute. Il faut jauger le temps passé dans chacune des parties du programme une fois le paramètre de mesure déterminé. Il est possible que 80 % à 90 % du temps soit consacré à l'exécution de 10 % du code (les boucles critiques). Les chiffres changent en fonction de la taille et de la complexité des projets.