EcommerceDEV. Développement, optimisation et sécurisation des sites de commerce électronique.
arrowAccueil arrow Optimisation arrow Performance arrow Utilisation de la librairie OSCache avec les JSP
Samedi 11 oct 2008
Nom d'utilisateur     Mot de passe      Conserver       Mot de passe perdu ?  Inscription
Menu
Accueil
A propos du site
Carte du site
Moteur de recherche
Nouvelles
Contactez-nous
Evénements
- - - - - - -
Analyse
Conception
Optimisation
Programmation
Sécurité
Produits/Services
Dec 21 2005
Utilisation de la librairie OSCache avec les JSP Version imprimable Suggérer par mail
Appréciation des utilisateurs: / 2
FaibleMeilleur 
Optimisation - Performance
Ecrit par Kamal AOUDA   
21-12-2005
Utilisation de la librairie OSCache avec les JSP

L’assemblage des vues composites est une opération très pénalisante pour les performances surtout sur les sites à forte affluence. Les filtres que nous avons présentés dans cet article sont particulièrement adaptés pour mettre en cache l’intégralité d’une page. Toutefois lorsqu’il s’agit de mettre en cache les différents blocs des vues composites ces filtres perdent leur efficacité.


La librairie OSCache d’OpenSymphony apporte une solution simple et élégante à ce problème. Elle fournit un ensemble préconçu de tags qui libèrent les développeurs d’une majeure partie des tâches liées à l’utilisation des filtres. Cette librairie Open Source peut être utilisée pour cacher aussi bien des fragments de JSP que des JSP entières.

Le package OSCache est disponible gratuitement sur le site d’OpenSymphony (www.opensymphony.org). Pour l’installer sous Tomcat, il suffit de copier l'archive oscache.jar dans le répertoire WEB-INF/lib de l’application et de placer les fichiers oscache.tld et oscache.properties dans le répertoire WEB-INF/classes. Une fois ces fichiers copiés il faut modifier le deployement descriptor (web.xml) de la manière suivante :

<taglib>
<taglib-uri>oscache</taglib-uri>
<taglib-location>classes/oscache.tld</taglib-location>
</taglib>

Pour cacher un fragment particulier dans une page, il faut l'entourer avec le tag <cache :cache …> comme le montre l’exemple suivant :

<%@ page import="java.util.*" %>
<%@ taglib uri="oscache" prefix="cache" %>
<html>
<head><title>OsCache demonstration</title></head>
<body>
Non cached portion : <%= new Date() %><p>
<cache:cache time="10">
Cached portion: <%= new Date() %> <! (Refreshed every 10 seconds)>
</cache:cache> </body> </html>

Pour tester le fonctionnement du tag il faut charger la page à plusieurs reprises (bouton refresh du navigateur). La date non cachée s’incrémente alors que la date cachée reste fixe. Cependant s’il s’écoule un délai de plus de 10 secondes entre chaque rafraîchissement la date cachée est automatiquement mise à jour.


Il est également possible de cacher le contenu dans le cadre d’une session utilisateur:

<cache:cache time="10" scope="session">
...
</cache:cache>

OSCache est aussi capable d’associer des identifiants uniques aux tags de façon à pouvoir les référencer dans d’autres JSP (voir exemple).

Example1.jsp

<%@ page import="java.util.*" %>
<%@ taglib uri="oscache" prefix="cache" %>
<html>
<head><title>Example 1</title></head>
<body>
Non cached portion: <%= new Date() %><p>
<cache:cache key="associatedkey">
Cached portion: <%= new Date() %> <p>
</cache:cache>

<a href="Example2.jsp">Rafraîchir</a>
</body>
</html>

Example2.jsp

<%@ taglib uri="oscache" prefix="cache" %>
<html>
<head><title>Example2.jsp</title></head>
<body>
Flushing the cache...<p>
<cache:flush key="associatedkey" scope="application"/>
<a href="Example1.jsp">Retour</a>
</body>
</html>

La JSP Example1.jsp cache une portion du code en lui associant la clé " associatedkey". La JSP Example2.jsp utilise cette clef pour vider le cache. Sur un site de commerce électronique, la clé peut être calculée dynamiquement pour cacher les informations et les images des produits.

OScahe permet également de limiter le nombre d’objets placés dans le cache. Par défaut, ce nombre est de 1000 dans la version 1.7.5 mais une fois atteint, la mémoire est réutilisée selon l’algorithme LRU (Least Recently Used) . Pour augmenter la taille du cache, il suffit d’éditer le fichier oscache.properties et d’ajuster la valeur du paramètre cache.capacity. Il est d'autre part possible de configurer OSCache pour cacher les fragments de page sur disque. Pour cela il suffit de modifier le paramètre cache.path en lui donnant comme valeur le chemin du répertoire disque où on souhaite conserver les données.

Cela dit, la librairie OSCache a dépassé le stade d’expérimentation. Aujourd’hui elle est utilisée par des sites aussi prestigieux que theserverside.com et bénéficie du support d’une communauté de programmeurs de plus en plus grandissante.
 

Dernière mise à jour : ( 25-04-2006 )
< Précédent   Suivant >
Benchmarks de performance

Les benchmarks de Keynote Systems sont conçus pour permettre aux entreprises de comparer la performance de leurs sites de commerce électronique avec celle de leurs principaux concurrents. Au-delà d’une simple mesure des indicateurs traditionnels comme le débit et le temps de réponse, les benchmarks de Keynote tiennent compte des cas d’utilisation et des contraintes sectorielles. Pour plus d’informations sur les benchmarks de Keynote, leur méthodologie et leur utilité, consulter les articles suivants :


 

* Keynote Index : benchmarking des performances des sites E-commerce.

* Perception de la performance par les utilisateurs, le temps de réponse.

 

 

Cliquer sur ce lien pour voir les résultats du mois de décembre 2005: 

 

Hébergement PHP, Mambo, MySQL
Web hosting services
Moteur de recherche
Recommander ce site
Collaboration
Téléchargements
Derniers événements
Aucun événement
Sondages

Temps de réponse tolérable pour afficher la page d’accueil d’un site e-commerce

  
Blogs Ecommerce
Blog de capitaine commerce
top

Ce site a été crée avec le CMS Mambo. Un logiciel gratuit disponible sous licence GPL.

Copyright Ecommerce DEV 2006.

Hosted by SiteGround