[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: XSLT 2.0 function - fastest node comparison
> > 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|