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

* Agence Drupal 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 Drupal Saint Etienne





Article:

En matière de programmation informatique, l'optimisation constitue la pratique réalisée pour simplifier le temps d'exécution d'une fonction, l'espace occupé par les données et le programme, ou la consommation d'énergie.
Le premier point de l'optimisation est qu'elle ne doit intervenir qu'une fois que le programme fonctionne et répond aux spécifications fonctionnelles. Nous remarquons qu'appliquer des optimisations de bas niveau du code avant que ces deux conditions ne soient accomplies revient le plus souvent à une perte de temps et s'avère néfaste à la clarté du code et au bon fonctionnement du programme
Force est de constater que cette règle ne doit s'appliquer qu'aux optimisations locales, de bas niveau (réécriture en assembleur, déroulage de boucle, etc.). Par contre, plus le projet accroît et plus ces optimisations de haut niveau seront pénibles et coûteuses (en termes de temps, difficulté et budget), voire impossible, à effectuer. La majorité des compilateurs récents pratiquent de façon automatique un certain nombre d'optimisations qu'il serait fastix d'effectuer manuellement et qui rendraient le code source moins lisible.
l'optimisation manuelle locale parait fondamentale dans des cas très spécifiques. Sur des machines RISC qui renferment un nombre élevé de registres et où l'efficacité demande le regroupement des instructions identiques pour bénéficier de l'effet pipeline, l'optimiseur d'un compilateur C procure 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 forcément en position contiguë, pour des raisons d'efficacité d'exécution. Cela rend le code assembleur généré particulièrement indéchiffrable.
Avant d'entamer l'optimisation, il faut d'abord évaluer la vitesse du code. Ainsi, il faut choisir 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.
Une fois le paramètre de mesure précisé, il faut mesurer le temps passé dans chacune des parties du programme. Il n'est pas anormal que 80 % à 90 % du temps soit consacré à l'exécution de 10 % du code (les boucles critiques). Les chiffres varient en fonction de la taille et de la complexité des projets.






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