Étude du Planet eZ Publish.fr (3/3) : performances, caches et compagnie

Suite et fin de la série d'articles sur la réalisation du Planet eZ Publish.fr avec les questions de performances et de caches.

I. Organisation et Import des articles
II. Modules/vues sur mesure et templates
III. Performances : caches et compagnie

Performances

Cache de vue et cache-block

La gestion des caches « standards » est un point important pour les performances. La vue full (zone entourée de jaune dans la capture d'écran ci-dessus) est assez logiquement l'affichage de la liste des articles, elle est automatiquement mise en cache (cache de vue ou cache de contenu). Pour que la page d'accueil et les pages Blogs et Planétarium soient à jour sans opération manuelle, il m'a fallu ajouter deux règles dans une surcharge du fichier viewcache.ini pour que le cache de vue soit vidé lors de l'ajout d'un objet de la classe Post ou de la classe Site.

Les menus (menu horizontal, liste des blogs, liste des planets) sont chacun entourés d'une instruction cache-block (cadres rouge) expirant avec la partie de l'arborescence qu'ils affichent. Et pour aller encore un peu plus loin, chaque article est lui-même individuellement mis en cache par un cache-block. Cela permet de limiter le nombre de requêtes SQL nécessaires à la re-génération de la vue full lors de l'ajout ou de la mise à jour d'un article ainsi que sur l'affichage des résultats de recherche.

Cache statique

Compte tenu du faible nombre de pages, j'ai choisi d'ajouter du cache statique en plus des caches classiques sur l'ensemble du site. 0,05 seconde pour sortir une page les mauvais jours, difficile de faire mieux ! Une des limitations du cache statique est l'impossibilité de pré-générer les pages avec paramètres (par exemple /page/(offset)/10), pour éviter ce problème, j'ai ajouté les pages principales (avec ou sans paramètres) dans les URLs à générer systématiquement. Ainsi à la moindre modification de contenu, le script de cronjob staticcache_cleanup.php génère la quinzaine de pages du site. Ce qui a aussi l'avantage de pré-générer les zones en cache détaillées précédemment pour les résultats de recherche par exemple.

Optimisations côté navigateur

Le temps de génération (ou de distribution) des pages n'est qu'une petite partie du temps total d'affichage de la page. Les Yahoo! Performances Rules ou le livre High Performances Web Sites listent les principales recommandations pour améliorer ce point.

Planet eZ Publish.fr est hébergé sur ma Dédibox, la configuration des entêtes d'expiration et de la compression GZip des éléments textuels sont effectifs. La charte graphique simple a également simplifiée la mise en place de la technique CSS Sprites pour limiter le nombre de requêtes HTTP nécessaire à l'affichage d'une page. Tout ceci donne un beau Performance Grade A(97) dans YSlow.

» Commentaires

- Remerciements (#67483) par Stéphane B le 28 Janvier 2009 à 10:53
Bonjour Damien,

Merci pour ces articles. L'affichage du planet est en effet super rapide.

A+
- Est ce que les problémes de performance ont bien été corrigé ? (#67673) par abhunguru le 16 Mars 2009 à 18:44
Bonjour,

Mon patron m'a demandé d'étudier eZpublish mais je suis tombé sur cet article :

http://www.media-business.biz/con...-18-mois-apr%C3%A8squel-est-le-bilan

et après sur cet article :
http://www.media-business.biz/content/ezpublish-lenfer-du-devoir

Savez vous si les défauts mis dans ces 2 articles ont été corrigé ou pas dans les nouvelles versions ?

Merci pour vos réponses.
- Static cache et view_parameters (#67700) par Jérôme le 24 Mars 2009 à 19:32
Bonsoir Damien,

"Une des limitations du cache statique est l'impossibilité de pré-générer les pages avec paramètres (par exemple /page/(offset)/10), pour éviter ce problème"

Peut-être seras-tu intéressé par le ticket suivant :
http://issues.ez.no/14657
- static cache (#67702) par Damien le 24 Mars 2009 à 23:02
@Jérôme : c'est super ça ! dès que j'ai deux minutes je teste ça.
- Feedback (#67705) par Jérôme le 26 Mars 2009 à 08:11
Super, tout feedback est le bienvenue.

N'hésite pas à commenter dans le ticket, comme ça, ça permet de centraliser les choses.

» Trackback

Aucun trackback

Les trackacks sont désactivés

Flux RSS des billets

Flux RSS des billets

Rechercher sur pwet.fr

À retenir

Derniers commentaires

Archives

Nuage de tags

Bioutifoul photos

Quelques liens

Licence d'utilisation

Contenu sous Licence Creative Commons By-Sa

Sauf mentions spécifiques, les billets et les photos publiés sur ce site sont placés sous la licence Creative Commons by-sa.

Pour toute utilisation dépassant le cadre de cette licence, merci de me contacter par e-mail.

Login