Obtenir des binaires optimisés

Problème

Vous voulez optimiser votre programme afin qu’il fonctionne plus vite et prenne moins de place en mémoire.

Solution

Optimisez le code vous-même à la main et indiquez certaines options au compilateur pour le forcer à effectuer quelques optimisations automatiques.

Discussion

Il n’existe pas vraiment de méthode pour optimiser le code à la main. Cependant, restez attentif à quelques points. Le premier, un cas d’école, consiste à écrire :


if (condition) 
  { 
    while (encore) 
      { 
        /* code */ 
      } 
  }
 

au lieu de :


while (encore) 
  { 
    if (condition) 
      { 
        /* code */ 
      } 
  }
 

Le test n’est ainsi fait qu’une seule fois. Mais ceci n’est valable que lorsque la condition est indépendante des variables de la boucle. Plus généralement, restez attentif aux boucles afin d’effectuer le maximum en dehors. Surtout, les boucles à l’intérieur des boucles doivent être séparées au lieu d’être imbriquées lorsqu’elles sont indépendantes :


for (i = 0; i < n, i++) 
  { 
    /* code */ 
  } 
 
for (j = 0; j < m, j++) 
  { 
    /* code */ 
  }
 

au lieu de :


for (i = 0; i < n, i++) 
  { 
    /* code */ 
    for (j = 0; j < m, j++) 
      { 
        /* code */ 
      } 
  }
 

Par ailleurs, certains appels système prennent beaucoup de temps. Parmi ceux-ci...

Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Bien répartir le code sur plusieurs fichiers
Suivant
Passer des paramètres au préprocesseur