Subject: RE: XSLT Processor caching and keys
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 13 Feb 2006 08:35:31 -0000
|
> My question is this though. If it is found that using 'keys'
> is a helpful
> optimisation, if I keep a copy of the XSLT processor in a cache (the
> messages are requests to a web service), does this include
> any internal
> structure/indexes created for said keys (I don't know how these work
> internally so I could be completely wrong ?).
This is entirely processor-dependent.
Saxon tries to keep a copy of the hash table that supports the key provided
you use both (a) the same compiled stylesheet (JAXP Templates object) and
(b) the same source document (Saxon NodeInfo object) - in this case, the
lookup document. To achieve this, make sure the lookup document is prebuilt
by the application and supplied as a parameter, rather than building it from
within the stylesheet using document().
You might find that it's easier to get index reuse by using the id()
function rather than key() - but again this is processor-dependent.
Michael Kay
http://www.saxonica.com/
|