OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: [xml-dev] Internal entities removed from XML?

[ Lists Home | Date Index | Thread Index ]

> Except that it doesn't show that, because every entity expansion
> involves copying the following text forward.

Since you have to look at the char, copying it back would go through the
mem cache.  I figured that was cheaper than saying (if buf != src) first.
Of course, the whole routine should be optimized by putting
   if (memchr(buff, '&', size) == NULL) return size;

> I'd be astonished if that
> wins compared with delivering expansions SAX-style. I'd even be
> surprised if it wins against non-in-place expansion to a separate
> buffer (assuming the copy was optimized away for the no entity refs
> case).

I don't know what to say here.  Have you done much "to the metal" coding
in C/C++ kinds of things?  Imagine an embedded device, for example:  no
need for multiple buffers.  Imagine streaming the output -- no need for
multiple system calls, computing total length, etc.  The input is all in
one buffer -- how *can* it be easier and more efficient to split it up?
Surely at times you wished SAX would guarantee one call/chardata?  But
even if not, don't think of SAX.  Think of smaller faster things.

Hope this helps.


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS