2008-12-10 12 views
2

Nous avons un grand xslt qui rend tout un secteur de magasin comprenant des produits, des fabricants et un filtrage basé sur le prix et la cateogry en plus de cela. J'utilise sitecore comme CMS et j'ai des problèmes avec la mise en cache. J'ai environ 9000 articles et certaines pages prennent autant que 20 pour rendre. Sera-t-il préférable de diviser le xslt en plus petites parties? Est-ce que cela améliore la vitesse?Un grand xslt plus petit plus granulaire

Je pense que le sitecore moteur xslt utilise est appelé Nexus.

Mise à jour:

Je pense que nous avons besoin d'optimiser le xslt. Même s'il y avait environ 9k éléments, le profileur de sitecore a montré que nous traversons environ 250k objets en effectuant des contrôles différents.

Répondre

4

vous obtiendrez probablement de meilleures performances en appliquant d'autres modifications que le fractionnement du fichier XSLT. Sans voir le XSLT, il est difficile de repérer les goulots d'étranglement, mais vous trouverez des meilleures pratiques pour les performances XSLT ici:

http://www.dpawson.co.uk/xsl/sect4/N9883.html#d15756e150

En outre, il peut être très utile d'utiliser un profileur XSLT dans ce cas.

Certaines astuces de performance dépendent également du moteur que vous utilisez, donc certaines informations supplémentaires peuvent être utiles ici aussi.

Si vous pouviez publier votre code XSLT, je pourrais vous aider à trouver d'éventuels goulots d'étranglement.

1

On dirait que le problème est avec sitecore pas XSLT (j'ai fait des transformations plus rapides contre 10 de rangées K), mais je conseille de scinder généralement pour permettre la réutilisation du code.

0

Il y a deux questions différentes:

  • Séparation des fichiers XSLT pour une meilleure lisibilité, maintenabilité et la réutilisation du code
  • Apporter des améliorations de performance sur vos traductions XSLT

Le premier devrait être fait une bonne pratique, ce dernier devrait prendre soin des temps de rendu étendus que vous obtenez

1

Séparer un énorme r Endering dans les plus petits aidera si vous utilisez la mise en cache de Sitecore. Avoir plusieurs rendus permettra d'appliquer des paramètres de cache individuels à chacun.

0

Certainement utiliser comme un petit nombre de XSLT qui ont du sens. C'est juste une bonne pratique et ne peut pas nuire à la performance.

Questions connexes