5- Code serveur
- Utiliser un moteur de templating
- Twig, Smarty, etc. fournissent toujours un système de cache
- Utiliser tous les niveaux de cache du CMS
- Générer les PDF en dehors du CMS
- Eviter la génération de PDF à la volée
- Créer des fichiers PDF en dehors du site et les proposer au téléchargement
- Redimensionner les images en dehors du CMS
- Ne pas utiliser le CMS pour ça, ce n'est pas fait pour et c'est très gourmand en ressources
- Encoder les sons dehors du CMS
- Utiliser un thème léger
- Eviter la réécriture des getters/setters natifs
- Ne pas les surcharger pour les langages objets
- Ne pas assigner inutilement de valeur aux variables
$v = $crm->fetchAllClients(); return $v;
return $crm->fetchAllClients();
- Mettre en cache les données calculées souvent utilisées
- Cache de type key->value en RAM, bien plus performants
- Mettre en cache le code intermédiaire
- Compiler l'interprété en bytecode (Hiphop VM, APC, ...)
- Utiliser la simple quote (') au lieu du guillemet (")
- Réduit les cycles CPU car le langage ne cherche pas s'il y a des variables dans la chaîne
- Remplacer les $i++ par des ++$i
- $i++ génère une variable temporaire
- Libérer de la mémoire les variables qui ne sont plus utilisées
- Notamment les tableaux et les variables de grandes tailles
- Ne pas appeler de fonction dans la déclaration d'une boucle for
- Mettre le résultat de la fonction dans une variable qu'on utilisera dans la boucle for
- Supprimer tous les warnings et toutes les notices
- Ralentissement car ils doivent retracer les erreurs et les journaliser
- Utiliser des variables statiques
- Pour éviter d'exécuter plusieurs fois le même code
- Eviter d'effectuer des requêtes SQL à l'intérieur d'une boucle
- Récupérer les données dans un tableau puis les injecter en SQL
- Ne se connecter à une base de données que si nécessaire
- Tout ce qui peut être généré en statique doit l'être pour éviter
les connexions BDD coûteuses en ressources
- Ne jamais écrire de SELECT * FROM
- Préciser les colonnes à inclure
- Limiter le nombre de résultats
- Utiliser LIMIT pour limiter le nombre de résultats au nécessaire
- Utiliser des procédures stockées
- Evite au serveur d'interpréter la commande car elle est précompilée
- Moins de bande passante utilisée