Accueil > Développement > Programmation > Optimisation du code

Optimisation du code

lundi 10 octobre 2005, par Prélude

Il est relativement simple d’optimiser un minimum son code pour éviter les goulets d’étranglement (en anglais : bottleneck) entre le serveur et l’utilisateur. Il faut juste prendre de bonnes habitudes dès le début.

Optimiser les boucles

C’est ce qui prend le plus de temps CPU : les boucles. Les fameux while, for ...

Comment optimiser une boucle ? Une habitude à prendre dès le début de votre programmation est de mettre à l’extérieur de la boucle tout ce qui peut l’être.

Par exemple, dans la boucle suivante,

for(i=1;i<10;i++) {
$max = 3;
$dummy = rand(1, $max);
if(...
}

La ligne "$max=3 ;" ne devrait pas être dans la boucle.
Il faut donc écrire cette boucle de la façon suivante :

$max = 3;
for(i=1;i<10;i++) {
$dummy = rand(1, $max);
if(...
}

Ce n’est rien, mais lorsqu’une boucle est exécutée 2000 fois ou plus, cela devient très vite important. Alors, si vous n’aviez prévu que quelques visiteurs et que finalement, vous vous retrouvez avec plusieurs centaines, voire plusieurs milliers de visiteurs, vous serez bien content d’avoir prévu dès le début ce genre d’optimisation.

Evidement, ce n’est pas tout. L’optimisation des boucles est une chose très importante et, généralement, c’est ici que se trouvent les goulets d’étranglement, mais il y a d’autres endroits dans le code qui peuvent poser de véritables problèmes.

Les bases de données

Sans entrer dans le détail, un chapitre complet y est dédié, il y a là aussi quelques précautions à prendre dès le début :
- ouvrir la base le plus tard possible
- fermer la base le plus tôt possible (et surtout ne pas oublier de fermer cette base !)

Rien qu’avec ces deux règles de base, un site peu passer de l’état instable à stable.

Optimisation du code HTML

Là aussi, sans entrer dans le détail, il est toujours possible d’optimiser les pages de façon à obtenir des pages moins lourdes et donc moins gourmandes en bande passante.

Et là aussi, la principale optimisation passe par les boucles. En fait, c’est plutôt des tableaux qu’il s’agit.
Par exemple, dans le code suivant :

<table width="200" border="0">
 <tr><td>
 <center>texte de cette case</center>
 </td></tr>
 ... (répétition de cette ligne)
</table>

La balise HTML "<center>" peut-être remplacée par le code suivant :

<tr><td align=center>texte de cette case</td></tr>

Vous gagnez 4 caractères à chaque ligne. Ce n’est rien, mais cette opération multipliée par le nombre de lignes, voire plusieurs fois par ligne si vous avez plusieurs colonnes, cela devient pertinent.

Evidement, rien ne remplace les CSS et il est évident qu’il vaux mieux remplacer tout ce code par un code un peu plus "propre" utilisant les CSS. Les gains seront nettement supérieurs.

Conclusion

Par de simples petites habitudes, il est tout à fait possible de réduire le poids des pages ainsi que la charge serveur en vue d’une montée en charge d’un site.
Nous rentrerons plus en détail sur chaque méthode dans de prochains articles.