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(_at_)pandora(_dot_)be>
wrote:
Tempore 19:42:15, die 03/01/2005 AD, hinc in
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com scripsit Sean Whalen
<seanwhalen(_at_)comcast(_dot_)net>:
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
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--