Optimisation de code
Brique ASC
Samuel Tardieu
École Nationale Supérieure des Télécommunications
Samuel Tardieu (ENST) Optimisation de code 1 / 77
But
L’optimisation cherche à
améliorer les performances
réduire l’encombrement du code
réduire l’encombrement mémoire à l’exécution
Ces contraintes sont souvent contradictoires.
Samuel Tardieu (ENST) Optimisation de code 2 / 77
Phases d’optimisation
À l’écriture du code :
choix d’un meilleur algorithme
Sur l’arbre intermédiaire :
élimination du code mort
optimisation des sous-expressions
optimisation des boucles
Sur le générateur de code :
choix des instructions
ordonnancement des instructions
Samuel Tardieu (ENST) Optimisation de code 3 / 77
Optimisation algorithmique
À la louche : 90% du temps est passé dans 10% du code
Optimiser ces 10% est primordial
L’optimisation des 90% restants est pénible et frustrante
Samuel Tardieu (ENST) Optimisation de code 4 / 77
Exemples d’optimisations
Dans certains cas (seulement), des optimisations simples peuvent
améliorer grandement les performances :
Remplacer un algorithme de tri par un autre
Utiliser un tableau plutôt qu’une liste chaînée
Utiliser l’allocation sur la pile (alloca()) plutôt que dans le tas
(malloc())
Faire calculer le plus de choses possibles à la compilation (Forth,
C++)
Samuel Tardieu (ENST) Optimisation de code 5 / 77
1 / 60 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !