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

Subject: Re: [xsl] speed difference between IE and Firefox during transform?
From: António Mota <amsmota@xxxxxxxxx>
Date: Tue, 1 Mar 2005 19:52:59 +0000
Yeah, in my situation using keys was the major improvement i've made.


On Tue, 01 Mar 2005 20:06:15 +0100, Joris Gillis <roac@xxxxxxxxxx> wrote:
> Tempore 19:42:15, die 03/01/2005 AD, hinc in
> xsl-list@xxxxxxxxxxxxxxxxxxxxxx scripsit Sean Whalen
> <seanwhalen@xxxxxxxxxxx>:
> 
> >     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)
> >     )] " />
> 
> Hi,
> 
> Maybe you could try using keys, they *might* speed it up.
> 
> The predicate could then be reduced to this:
> <xsl:variable name = "revealing" select = "$field[
>         @isBomb != -1  and @isRevealed = 0 and
>       $zeros/@sqID=key('zero',concat(@h ,'/', @v ))/@sqID] " />
> 
> while the key would be defined in a way like this:
> 
> <xsl:key name="zero" match="square" use="concat(@h -1 ,'/', @v )"/>
> <xsl:key name="zero" match="square" use="concat(@h +1 ,'/', @v )"/>
> <xsl:key name="zero" match="square" use="concat(@h -1 ,'/', @v -1)"/>
> ...
> 
> regards,
> --
> Joris Gillis (http://www.ticalc.org/cgi-bin/acct-view.cgi?userid=38041)
> "Et ipsa scientia potestas est"  - Francis Bacon , Meditationes sacrae

Current Thread