xsl-list
[Top] [All Lists]

RE: XSLT 2.0 function - fastest node comparison

2005-03-10 10:17:50

Interestingly, using 'cast as' on $middle to narrow it to 
an integer 
causes the execution time to increase by 250ms, so I've 
left them all 
as doubles (the positional predicate in $currentNode doesn't
appear to mind
using a double).  

That makes me realise that it would actually avoid many 
string->number conversions if you extracted the ranges as two 
sequences of integers in global variables:

<xsl:variable name="lows" select="$ranges/*/@from/xs:integer(.)"
as="xs:integer*"/>
<xsl:variable name="highs" select="$ranges/*/@to/xs:integer(.)"
as="xs:integer*"/>
<xsl:variable name="n" select="count($lows)" as="xs:integer"/>

test="some $i in 1 to $n satisfies ($highs[$i] ge $test and 
$lows[$i] le $test)"


That's much better still:

Old Way         New Way
932ms           772ms
931ms           771ms
952ms           781ms
941ms           771ms
931ms           781ms

Thanks Mike, always nice to use the 'satisfies' keyword...

cheers
andrew

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--