RE: [xsl] speed difference between IE and Firefox during transform?

Subject: RE: [xsl] speed difference between IE and Firefox during transform?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 1 Mar 2005 19:23:05 -0000
MSXML3 is one of the fastest XSLT 1.0 processors around and it doesn't
surprise me if it (sometimes or often) beats the engine used in Firefox.
It's also not unusual to find a 10:1 speed difference between two XSLT
processors for particular constructs, where one processor happens to find a
better optimization than another.

I'm slighly surprised that you can isolate the difference to this one XPath
expression, but one can certainly imagine strategies (such as building an
index or hash table) that would greatly speed up this expression under
particular conditions.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Sean Whalen [mailto:seanwhalen@xxxxxxxxxxx] 
> Sent: 01 March 2005 18:42
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] speed difference between IE and Firefox during 
> transform?
> 
> 
> Hi,
>     I've been playing with XSLT, and as a practice exercise I 
> am putting 
> together an all-xslt version of the game Minesweeper.  It is 
> basically 
> 90% done at this point.  I've noticed a big difference in the 
> transform 
> speed of one of the stylesheets I'm using. 
> 
>     I'm writing the list to find out if that is to-be-expected or if 
> that is strange.  The game has some other UI issues, but I'm writing 
> here just to ask about the difference in speed between the 
> two browsers.
> 
>     The stylesheet, at the point of the slowness, has 2 node-set 
> variables, and it is building a 3rd variable by selecting all the 
> members of the first set that have an attribute that is found in some 
> member of the second set.  That block of code looks a little 
> like this:
> 
> <xsl:variable name = "revealing" select = "$field[
>         @isBomb != -1  and @isRevealed = 0 and
>       ((concat(@h -1  ,'/', @v   ) = $zeros/@sqID)    
>     or (concat(@h  +1  ,'/', @v ) = $zeros/@sqID)
>     )] " />
> 
>     In that code, the "$field" contains the unexposed 
> squares, and the 
> "$zeros" are the revealed squares that are being used to 
> search for more 
> revealable squares.  This can take a second or two when this 
> runs in IE, 
> but can take up to ten seconds in Firefox. 
> 
>     Is that just the way it is?
> 
> this is the main page for the app (index.html)
> http://seanwhalen.home.comcast.net/sweeperscript/
> 
> and this is the stylesheet with the strange slowness in Firefox:
> http://seanwhalen.home.comcast.net/sweeperscript/RevealBombs.xsl
> 
> Thanks for any feedback.
> Sean

Current Thread