Introduction
L'optimisation est avant tout un jeu de patience par lequel il faudra faire des choix d'où on souhaite mettre notre énergie pour arriver à ce résultat. Il y a des possibilités partout, mais le temps pour mettre certaines solutions peut être tellement long, qu'ils n'en valent pas l'investissement. Ultimement, le développement maison deviendra peut-être impossible sans passer par un CMS ! Toutefois, en attendant, il existe de nombreuses pistes comme celle-ci :
- Ajouter des INDEX sur tous les champs de table de base de données fortement sollicitée par le site Web.
- Copier des tables de base de données très sollicitées directement en RAM de la mémoire du serveur. Il faudra naturellement la recopier à chaque redémarrage du site.
- Fixer les heures d'exécution des cronjobs au moment de la journée où il y a le moins de trafics. Ainsi, généralement, il s'agira entre minuit et 3 heures du matin.
- Réduire la taille des fichiers d'images GIF, PNG et JPEG. Les applications comme Adobe Photoshop offre des possibilités exceptionnelles et une excellente qualité, mais n'offre pas un bon niveau de compression comparativement à d'autres applications.
- Si possible, éliminer des cadres d'applications (Framework) trop lourds en temps d'exécution. Certains cadres d'applications comme en PHP, ne sont carrément pas pensés pour des sites avec un haut niveau trafic, il faut naturellement éviter de l'utiliser. De plus, certains gabarits, bien que d'une apparence propre et d'un point philosophique très correct, ralentiront inutilement l'exécution.
- Découper inutilement des pages de gabarit en 48 fichiers, cela non plus, ce n'est pas très judicieux, même Google lui-même commence à avertir les développeurs (par son outil pour les Webmestres) que l'utilisation de trop d'inclusion de fichier CSS ralentit considérablement les résultats de chargement.
- Maximiser l'exécution du côté client : utiliser par exemple Kendo UI ou jQuery UI afin que le code du site ait un maximum de code du côté client afin de laisser un minimum de code du côté serveur.
- Générer le résultat d'une page ASP, ColdFusion, JSP, PHP,... dans un fichier HTML statique : si votre page ne change qu'une fois par mois, il est inutile de le rendre dynamique à chaque seconde. Ensuite, si vous êtes craintifs que les navigateurs clients restent avec votre ancienne page trop longtemps, vous n'avez qu'à rajouter un paramètre aléatoire obligeant à recharger la page en fonction de délai de régénération de la page. Avec cette technique, même du Ruby In Rails peut-être aussi rapide que du ASP.NET.
- Si vos pages sont systématiquement dynamiques et que vous n'avez d'autres choix que de les changer continuellement en fonction du contexte, vous n'aurez pas être pas le choix des écrires en assembleurs. Mais l'inconvénient de cette technique c'est que vous serez à la merci d'une famille de microprocesseur (ARM, 80x86,...), voire même d'une architecture (x86, x64). On peut parfois faire un compromis de demi-mesure en exploitant une composante écrite en Delphi exploité par une page de langage de programmation serveur.
- Si vous pouvez utiliser un serveur Apache, utilisez plutôt la version Apache Traffic Server avec l'«ESI plugin» lequel permet d'effectuer des générations de codes avec des balises ESI (esi:attempt, esi:include, esi:try,...).
- Il y a aussi le contrôle des abus serveur, si un IP effectue trop de requêtes non sollicitées à votre site Web en un laps de temps donné, il serait préférable de l'interdire l'accès pour une minute par exemple.
- Il y aussi la possibilité de monter les serveurs en Cluster. Là on parle d'un investissement très coûteux en terme de matériel. Là, il est parfois préférable de regarder du côté de l'hébergement dans les nuages : Amazon AWS, IBM Cloud Computing, Google Storage,...
- Utiliser des sites comme «PageSpeed Insights» proposant des actions pour optimiser votre site.
Voir également
Langage de programmation - Assembleur 80x86 - Accueil
Langage de programmation - Delphi/Kylix/Lazarus - Référence des directives de compilation - «$OPTIMIZATION»
Langage de programmation - JavaScript - Optimisation - AJAX
Langage de programmation - HTML - Bonnes pratiques
Langage de programmation - MySQL - Optimisation
Langage de programmation - Perl - Optimisation - Service Web
Langage de programmation - PHP - Bonnes pratiques (Optimisations)
Langage de programmation - PHP - Référence de procédures et fonctions - «DBA_OPTIMIZE»
Langage de programmation - PHP - Code Igniter - Référence des classes - dbutil - «optimize_table»
Articles - Les «cronjobs» : La puissance de la planification
Articles - Comparatif des CMS