Yes, that's a better patch than what I submitted and seems to work as well.
Cheers, Chris. ----- "Daniel Veillard" <[email protected]> wrote: > On Sat, Feb 21, 2009 at 09:29:49AM -0500, Christopher R. Palmer > wrote: > > In recent libxml2 code (I saw it when we moved from 2.6.32 to > 2.7.2), the xmlBuffer object used by xmlAllocOutputBuffer changed from > using the DOUBLEIT allocator to the EXACT allocator. This ends up > being used in xsltSaveResultToString. > > > > We found that the time to save a node to a string (6MB) went from > about 1 second to about 13 seconds on a Windows installation. > > > > I've attached a tiny patch that solves the issue for us. > > Okay I think it relates to this change: > > Sat Aug 30 14:50:16 CEST 2008 Daniel Veillard <[email protected]> > > * include/libxml/tree.h tree.c: make a new kind of buffer > where > shrinking and adding in head can avoid reallocation or full > buffer memmoves > * encoding.c xmlIO.c: use the new kind of buffers for output > buffers > and also > > Mon Sep 1 15:02:05 CEST 2008 Daniel Veillard <[email protected]> > > * xmlIO.c HTMLtree.c: new internal entry point to hide even > * better > xmlAllocOutputBufferInternal > * tree.c: harden the code around buffer allocation schemes > > What you're seeing is at the intersection of this, where I tried to > avoid a lot of in-memory moves in edge cases and the long identified > but apparently still there problem of the realloc() performances on > Windows. > To be sure the change to DOUBLEIT should only be done if the value > is > EXACT, and not any of the other values. > Can you check the enclosed path instead ? > > thanks, > > Daniel > > -- > Daniel Veillard | libxml Gnome XML XSLT toolkit > http://xmlsoft.org/ > [email protected] | Rpmfind RPM search engine http://rpmfind.net/ > http://veillard.com/ | virtualization library http://libvirt.org/ -- Christopher R. Palmer [email protected] Chief Technology Officer www.vivisimo.com Vivisimo, Inc. 412-422-2499 ext. 118 _______________________________________________ xml mailing list, project page http://xmlsoft.org/ [email protected] http://mail.gnome.org/mailman/listinfo/xml
