12.1 XSL evaluation no longer lazy, now very slow
Posted: Fri Feb 18, 2011 9:30 pm
I've been doing some XSLT work for a bit, and have run into some serious speed issues with 12.1. I'm hoping it's just that a default setting value is different now, and that someone can point me to it.
SETUP:
OxygenXML 12.1 on fully updated Win XP.
XSL:
The XSL sheets in question define lots of complicated global variables. Running the whole thing is slow, there's no way about it. BUT -- evaluating just one of these global vars (such as when debugging) used to be very fast, using code like the following:
In previous Oxygen versions, the XSL engine would evaluate *only* what was needed to spit out what was asked for. I.e., if $IMGS doesn't reference other global variables, those other global vars would not be evaluated.
Now, Oxygen's underlying XSL engine seems to evaluate the *whole* thing. The only real differences I can find are 1) I upgraded to 12.1, and 2) I've refactored some content to a different "Common.xsl" file that I import.
QUESTIONS:
1) Does importing cause Oxygen to evaluate *everything*, even when only asking for partial evaluation, as in the sample above?
2) Is there some different setting in version 12.1 that I've missed?
3) Maybe I missed something else?
The possibility that importing is causing the difference just occurred to me (I only just refactored this stuff yesterday). I don't have time right now to un-refactor (defactor?) back to avoid importing, but I'll look into that later and post back here if I find anything.
Any constructive advice in the meantime would be more than welcome.
Cheers,
-- Eiríkr
SETUP:
OxygenXML 12.1 on fully updated Win XP.
XSL:
The XSL sheets in question define lots of complicated global variables. Running the whole thing is slow, there's no way about it. BUT -- evaluating just one of these global vars (such as when debugging) used to be very fast, using code like the following:
Code: Select all
<xsl:template match="/">
<mtf>
<TEST>
<xsl:copy-of select="$IMGS"/>
</TEST>
</mtf>
</xsl:template>
Now, Oxygen's underlying XSL engine seems to evaluate the *whole* thing. The only real differences I can find are 1) I upgraded to 12.1, and 2) I've refactored some content to a different "Common.xsl" file that I import.
QUESTIONS:
1) Does importing cause Oxygen to evaluate *everything*, even when only asking for partial evaluation, as in the sample above?
2) Is there some different setting in version 12.1 that I've missed?
3) Maybe I missed something else?
The possibility that importing is causing the difference just occurred to me (I only just refactored this stuff yesterday). I don't have time right now to un-refactor (defactor?) back to avoid importing, but I'll look into that later and post back here if I find anything.
Any constructive advice in the meantime would be more than welcome.

Cheers,
-- Eiríkr