Hello, il s'est passé pas mal de temps avec les fêtes mais je réponds quand même pour pas laisser la discussion oubliée.
- La complexité algorithmique est la même, donc une différence de rapidité serait injustifiable... Mais est-ce qu'il y en a une ou pas, tout dépend du moteur XSLT utilisé, évidemment.
Si on croit vraiment en ce genre d'économies de bouts de ficelle (ou qu'on a un moteur XSLT où elles ont vraiment un effet,) le mieux est plutôt d'avoir un seul prédicat :
<xsl:value-of select="dvd[(condition 5) and (condition 6) and (condition 7) and (condition 8)]"/>
Ça veut dire la même chose, mais si le moteur est naïf ça lui évitera au moins de construire 4 représentations de listes distinctes.
- Quand on a besoin d'optimiser une transformation XSLT, on ne change pas l'ordre des trucs ou la syntaxe utilisée.
-- D'abord on regarde si utiliser des clés peut améliorer les choses, et si oui on le fait. Là ça n'a pas l'air d'être le cas.
-- Ensuite, on remplace XSLT par un programme ad hoc qui fera directement les choses de la manière la plus rapide possible. Les moteurs XSLT n'utilisent pas d'optimisation JIT qui ferait mieux qu'un programmeur.
Partager