xsl-list
[Top] [All Lists]

RE: Use predicates/patterns or xsl:choose (was:] Stylesheet optimisation)

2005-01-11 10:20:46
A parser has to test a node against all available templates 
and unless wrong ones fail very quickly 
(or unless some smart optimisation is done), evaluating all 
match patterns can consume considerable 
time. 

Saxon builds a simple decision tree for template rules: first by node kind,
then by node name. Knowing the node-kind and node-name you can then hash
into what is usually a very small set of possible template rules. Saxon then
tests these sequentially, exactly as it would if you wrote an xsl:choose
within a single template rule.

In principle hashing or indexing techniques could be used even more than
this; but then, they could also be used for xsl:choose. In fact, I'm sure
that any stylesheet using one style could be automatically translated into
one using the other style, which means that you can't say absolutely
(without product knowledge) which style will give better performance.

Michael Kay
http://www.saxonica.com/


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--