[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] how to estimate speed of a transformation
Subject: Re: [xsl] how to estimate speed of a transformation From: Kevin Jones <kjones@xxxxxxxxxxx> Date: Thu, 11 Dec 2003 11:25:28 +0000 |
On Thursday 11 December 2003 07:28, David Tolpin wrote: > > Therefore, determining required optimizations (and > 'optimization' is a wrong word -- computational rules) and > requiring conformant implementations to follow them would keep > the language simple and easy to use. Extending the language to > bring features which are redundant and put the burden of > reasoning about the features of XSLT data model on the > programmer does the opposite. > In principle I would agree, although without very much precedent for such in other languages I think it may be a hard sell. Sounds like you might have some good insight into what might be good computational rules. Tail recursion is such an obvious one but the variable example is a little more involved. It appears that the choices are:- 0 times - Allowed only if variable is not used n times - Once for each value of 'n' x times - Once for each call of the template (probably the default) However there is also potential performance gain from using the variable only as a specification and not the basis of execution. So a processor may choose to execute the equivalent of:- <xsl:template name="footer"> <xsl:param name="n"/> <xsl:variable name="titles" select="/book/descendant::title"/> <xsl:variable name="doctitle" select="$titles[position() = $n and starts-with(normalize-space(.),'Chapter')]"/> Clearly here the titles variable could then be evaluated only once and the doctitle variable has the same options as above. I have worked in this area where the goal is performance optimisation and found it very difficult to locate good heuristics for strategy selection, although we occasionally find some real big gains for this type of work. I suspect you are more concerned with having known behaviour rather then necessarily best performing behaviour. I think there is a case for that as long as it does not overly restrict a processors ability to select its own best execution strategy. I would probably consider variable evaluation strategy as an example of such a case, i.e. where the benefit of allowing performance tweaking outways the benefit of knowing when/how things are evaluated. Kev. XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] how to estimate speed of , David Tolpin | Thread | Re: [xsl] how to estimate speed of , Daniel Veillard |
Re: [xsl] how to estimate speed of , David Carlisle | Date | Re: [xsl] Assigning numbers, David Carlisle |
Month |
Keywords