Il faut le rappeler, l'expérience utilisateur est très importante lors de la consultation d'un site web. En ce qui me concerne, si un site met trop de temps à répondre, je passe mon chemin et je vais voir ailleurs. C'est bien pour cette raison que Google apporte une attention importante au temps de chargement des pages.
Optimiser son code permet de gagner des millisecondes dans l'exécution des scripts.
Les mises à jour :
La première chose à faire, c'est d'effectuer les mises à jour lorsque c'est possible.
Chaque nouvelle version de PHP apporte son lot d'améliorations y compris du coté des performances.
Les chaines de caractères :
La documentation de PHP indique que "la façon la plus simple de spécifier une chaîne de caractères est de l'entourer de guillemets simples (le caractère ')".
Cela oblige d'échapper le guillemet simple littéral avec un antislash lorsqu'il se retrouve dans une chaine.
echo 'Il faut entourer guillemets simples';
Les guillemets doubles pourront être utilisés lorsqu'il y a une concaténation de variables.On pourra par exemple écrire :
echo "Bonjour $prenoms, comment vas-tu ?";
qui sera plus rapide que :
echo 'Bonjour '.$prenoms.', comment vas-tu ?';
Faites la chasse aux erreurs :
Les serveurs de production sont généralement paramétrés pour ne pas afficher certaines erreurs. Ainsi les erreurs de type E_ERROR | E_WARNING | E_PARSE | E_NOTICE ne sont pas visibles. Faire un petit tour régulier dans les fichiers log d'Apache vous permettra de les débusquer afin de les corriger.
Les fichiers log sont formateurs, on y apprend beaucoup de choses, notamment concernant les techniques utilisées par ceux qui sont à la recherche de failles sur votre serveur...
Il existe bien d'autres pratiques afin d'optimiser votre code, mais avec les années d'expérience dans la pratique de PHP/MySql, j'ai pu observer que l'optimisation de la base de données était très importante.
Ainsi, l'utilisation systématique de :
- clé primaires auto-incrémentées
- création d'index sur les clés étrangères
- création d'index sur certains champs utilisés pour des recherches
- ...
Permettent bien souvent d'obtenir des gains significatifs de performance.