Posts Tagged ‘ovh’

La course à l’optimisation

mai 24th, 2009

Salut à tous et à toutes,

Depuis le premier article de Blaise sur le projet de la V2, dans lequel il vous avait promis de ma part des nouvelle du développement, aucun article n’a fait son apparition. Je suis là pour redresser les choses. Et je ne viens pas sans rien. Je vais vous donner quelques chiffres  (pour ainsi dire ce sont les chiffres révélateurs puisque la plupart de ces chiffres ne changeront pas, ou très peu).

Mais voici d’abord la raison d’être de cet article : j’ai, dès le début du développement, cherché un maximum l’optimisation des codes et donc, du site, en voici, dans cet article, le résultat que j’en ai obtenu.

L’optimisation, pourquoi ?

Vous vous souvenez très certainement des lacunes de la version, 1 si vous avez déjà été dessus. En effet, la génération des pages étaient relativement lente, ce qui provoquait pas mal d’erreurs (Erreurs 500 entre autres) . Le temps de génération des pages dépassait parfois 1 seconde ! Ça ne paraît pas comme ça, à l’entendre, mais, pour un site qui n’est pas sensé être lourd, c’est énorme.

C’est pourquoi cette fois-ci j’ai décidé de ne pas refaire cette erreur. Car si c’est dur pour le serveur de répondre à toutes ces lourdes demandes, c’est tout autant désagréable pour les visiteurs. J’ai ainsi cherché la plus petite optimisation possible, venant des fois jusqu’à mettre des heures pour un truc assez simple de base.

Résultat ?

Et bien je n’ai pas été déçu de mon résultat, en local, tout était vraiment rapide, j’en était jusqu’à 2 fois plus rapide sur certaines pages (comparé à la v1, en local elle aussi) . Mais j’étais loin de savoir ce qui m’attendait ! Hier, pour des raisons de nécessité, j’ai dû mettre sur le ftp, la v2 de Bloonet. Et pour tout vous dire, j’ai cru a une erreur au début ! De moyenne, j’affichais un temps inférieur à 0,06 secondes soit jusqu’à 20 fois moins de temps. Ça va, ça me semble raisonnable =D .

Du coup, j’ai eu l’idée d’établir diverses graphiques pour suivre ça de plus près dans l’administration, en voici quelques exemple :

Temps de génération des pages

Temps de génération des pages

Requêtes par page

Requêtes par page

Ainsi comme vous pouvez le voir, à part 3 pics de temps, dû certainement à des lags du serveur (tous les temps de chargement ayant été pris sur la même page, à savoir index.html), les temps de chargement sont extrêmement bas. Mais vous pouvez aussi voir que je n’ai pas cherché à optimiser uniquement le temps de chargement, même si ça y est lié, j’ai aussi cherché à réduire au minimum les accès à la base de données.

Et pour vous dire, j’ai réussi, sur le graphique ça ne se voit pas, mais les tests ont étés faits sur 4 pages différentes. 4 requêtes par page, c’est 2 à 3 fois moins que sur la version 1. Et c’est là que je suis sensé vous expliquer que le strict minimum a été mis dans la base de données, et que le reste (options de membres, options des news, etc.) a été mis dans des fichiers. Ce système nous permettant d’être plus rapide à la génération.

Mais ?

Mais voilà, pour simplifier le travail en équipe, et plus tard de permettre une traduction facile du site, mais aussi pour une raison d’ergonomie envers les administrateurs, nous utilisons un moteur de templates : Talus’ TPL. C’est en soit un très bon moteur de templates, mais forcément, il y a des calculs à faire par le serveur que de base il n’y a pas. Ca nous ralentit donc un peu.

De plus, le serveur MySQL de 1&1 est lent, ça ralentit plus encore la génération des pages (c’est aussi un peu pour ça que j’ai évité un maximum les requêtes) . Plus tard, lorsque la version 2 sortira en public, et qu’elle aura le succès escompté, nous changerons d’hébergeur vers OVH je pense qui a de bonnes critiques. Mais nous ne sommes pas encore là ^^ .

Enfin, même si le temps de génération à significativement diminué, il n’en est pas de même pour le temps de chargement ! Bien que j’aie cherché à réduire un maximum la taille des images, à compresser tout document, ce n’est pas suffisant, et pour cause : le datacenter de 1&1 est situé en Allemagne, contrairement à celui de OVH qui est situé en France.

Le mot de la fin

Voilà, vous savez tout sur l’optimisation de la version 2 de Bloonet, si vous voulez en savoir plus, ou si vous voulez nous proposer des idées, n’hésitez pas à laisser un commentaire ou à nous envoyer un mail à adri22@bloonet.fr (Adrien) ou à electro@bloonet.fr (Blaise) .

Je reviendrais bientôt avec d’autres nouvelles,
à bientôt !