[jdom-interest] newbie question

bob mcwhirter bob at werken.com
Wed Dec 4 07:06:03 PST 2002


> I agree that XPath is probably not the fastest (CPU-wise) solution but why do 
> you think XPath can lead to memory problems?
> The XPath engine allocates memory when it compiles the XPath expression (when 
> you invoke XPath.newInstance) but not when evaluating the expression against a 
> given node. At this stage, it just navigates the document.
> There's one exception to the above rule in Jaxen: Namespaces. When evaluating 
> namespaces, the XPath engine allocates wrapper objects as XPath Namespaces do 
> have a parent while JDOM's don't.
> 
> As for speed, you can reach quite good performances by compiling XPath 
> expressions and reusing them (i.e. using XPath.newInstance rather than the 
> static selectNodes and selectSingleNode). If need be, you can use XPath 
> variables in your expressions to use few generic compiled XPaths and call 
> setVariable to "adapt" the expression before each evaluation.

Also, fwiw, I've got changes in the pipe-line, so that when evaluating
the XPath, you can pass a VariableContext into the method, allowing for
multi-threadsafe evaluation of an XPath with simultaneous different
variable bindings.  Not in jaxen yet, but soon.  Was just an oversight.

	-bob




More information about the jdom-interest mailing list