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. Cheers, Chris.
Attachment:
doubleit.patch
Description: Binary data