Optimizations and performance improvements
MappingFunction classes have
been subdivided into three pairs of classes that provide different subsets of the functionality:
ContextMappingIterator is used when each item being mapped becomes the context item;
MappingIterator when this is not the case, and
the mapping is from one input item to zero-or-one output items. This change was made to reduce
code pathlengths in the most commonly used cases.
Handling of decimal values has been speeded up by using the JDK 1.5 method
if it is available (Saxon uses an equivalent but slower routine otherwise).
There have been some improvements to the join optimizer in Saxon-SA, allowing hash joins to be used in some situations where they were not used previously.
Improvements have been made to the memoizing optimization used for