I am trying to stream the identity in XSLT, using Saxon.
I've done it in two different ways:
1) cat the xml file and pipe to Saxon
2) take the xml as input
3) and 4) as above, but without the streaming directive;
so, 3) and 4) run from memory.
What confuses me:
3) and 4) are *faster* than the streaming execution.
How can that be??
I find it also confusing that for streaming,
memory consumption increases by 50%
when I run from the cat-pipe, as when the file name is given.
Can this be explained? (-- it is faster though) -- see the numbers below.
Moreover, if I use another streaming tool, such as GCX (written in C++)
and run the identity (written in XQuery) then this is *much* faster; it takes
less than half of the time of Saxon.
Is this only due to the fact that Saxon is written in java and uses a java