[Home] [By Thread] [By Date] [Recent Entries]


On Sat, Jan 24, 2004 at 02:18:42PM -0500, Elliotte Rusty Harold wrote:
> At 10:19 AM -0800 1/24/04, Tim Bray wrote:
> >It dawned on me that with all the checking and so on, genx might not 
> >be as fast as it could possibly be.  The way to fix this is obvious, 
> >but it might amount to premature optimization.  The idea is that you 
> >predeclare your elements and attributes and get handles to them, so 
> >that they only need to be namechecked and sorted once.
> 
> Definitely premature. 

I strongly disagree.

Tim's intent may be to add genxDeclareElement / genxFastStartElement
as a speed optimization, but I would use it to write more expressive
code.  For example:

  #define XSL_NAMESPACE "http://www.w3.org/1999/XSL/Transform"
  #define XHTML_NAMESPACE "http://www.w3.org/1999/xhtml"

  genxElement xsl_template = genxDeclareElement(w, XSL_NAMESPACE, "template");
  genxElement xhtml_a = genxDeclareElement(w, XHTML_NAMESPACE, "a");
  ...

  genxFastStartElement(w, xsl_template);
  ....
  genxFastStartElement(w, xhtml_a);
  genxFastStartAttribute(w, xhtml_href, "http://www.w3.org/");

This abstraction increases the expressivity of genx.  If it also happens
to be a speed enhancement, that's a nice secondary benefit.  

(I dislike the 'genxFast' prefix, but don't have a suggestion for an
alternative.)

Z.


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member