Fabrice Desré - France Telecom DR&D/MAPS/AMS wrote:
> Hello John,
>
> Interesting new project ! A few remarks :
>
>> * Faxpp is the only XML pull parser available for C/C++.
>
> libxml2 also support a pull mode (see
> http://xmlsoft.org/html/libxml-xmlreader.html and
> http://xmlsoft.org/examples/index.html#xmlReader).
Interesting - I must have missed that when I was searching.
>> * Faxpp attempts to avoid string copies by pointing back to the parse
>> buffer wherever possible. This results in performance better than even
>> Expat under some benchmarks.
>
>> * Faxpp can easily return strings in any user provided encoding.
>
> Interesting approach. So I guess that the end to end performance depends
> on wether the returned strings and the source document encoding are the
> same or not ?
Right. For instance when parsing UTF-8 and returning UTF-8, Faxpp is
faster than Expat. When parsing UTF-8 and returning UTF-16 Faxpp is
currently a little slower than Expat, although I haven't put any effort
into optimising this scenario yet.
There are other factors - null termination of returned strings and
attribute value normalization can both cause string copies. These can
both be disabled, although disabling the latter would mean Faxpp would
be non-conformant.
John
--
John Snelson, Oracle Corporation http://snelson.org.uk/john
Berkeley DB XML: http://www.oracle.com/database/berkeley-db/xml
XQilla: http://xqilla.sourceforge.net