Stefan Behnel a écrit :
> Alexandre Macard wrote:
>   
>> Stefan Behnel a écrit :
>>     
>>> Alexandre Macard wrote:
>>>       
>>>> I try dump a node from a big xml (near 7mo), and the libxml2 is very
>>>> slow to respond.
>>>>
>>>> I tried to trace the problem and it seems to take all it's time into
>>>> the
>>>> function: xmlOutputBufferWriteEscape.
>>>> I do not need to escape data because I use a base64 encoding.
>>>>
>>>>         
>>> You didn't write which version of libxml2 you are using, but there was a
>>> bug in an older version that could lead to horrible performance when
>>> serialising character entities.
>>>
>>> Try upgrading your library.
>>>       
>> Sorry I forgot to precise this information. I am using the last version
>> 2.7.2.
>>     
>
> So maybe it's a similar bug, but for a different encoding (I think it was
> related to the ASCII encoding at the time).
>
> Could you provide the code snippet that you use for serialisation? I.e.
> what parameters you pass into what function?
>
> Stefan
>
>
>   
This little test code make 15secs to exit.
The journal.xml size is 7.1Mo.

int main() {
    xmlDocPtr doc;
    xmlNodePtr cur;
    xmlBufferPtr buf;

    doc = xmlParseFile("./journal.xml");
   
    if (doc == NULL ) {
        fprintf(stderr,"Document not parsed successfully. \n");
        return (0);
    }
    cur = xmlDocGetRootElement(doc);

    if (cur == NULL) {
        fprintf(stderr,"empty document\n");
        xmlFreeDoc(doc);
        return (0);
    }

    buf = xmlBufferCreate();
   
    xmlNodeDump(buf, doc, cur, 1, 1);

    xmlFree(buf);
    xmlFreeDoc(doc);

    return (0);
}

I will try to add later a script to generate a similar xml.

Thanks.
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to