Hello xerces-c-dev,
Xerces-C version number - 2.5.0
Platform - Intel Pentium 4
Operating system and version number - Microsoft Windows
2000 AS
Compiler and version number - cygwin (Visual C 7.0)
The C application code that failed:
//--------------------------------------------------------
---------------------------
#include <stdio.h>
#include <conio.h>
#include <xercesc/dom/DOM.hpp>
XERCES_CPP_NAMESPACE_USE
int main(int argc, char* argv [])
{
XMLPlatformUtils::Initialize();
XMLCh * xml_str;
DOMImplementation* impl =
DOMImplementationRegistry::getDOMImplementation(0);
xml_str = XMLString::transcode( "root" );
DOMDocument* doc = impl->createDocument(0,
xml_str, 0);
XMLString::release( &xml_str );
DOMElement* root = doc->getDocumentElement();
xml_str = XMLString::transcode( "FirstElement" );
DOMElement* e1 = doc->createElement(xml_str);
XMLString::release( &xml_str );
root->appendChild(e1);
xml_str = XMLString::transcode( "SecondElement" );
DOMElement* e2 = doc->createElement(xml_str);
XMLString::release( &xml_str );
root->appendChild(e2);
xml_str = XMLString::transcode( "aTextNode" );
DOMText* textNode = doc->createTextNode
(xml_str);
XMLString::release( &xml_str );
e1->appendChild(textNode);
printf("Step 1\n"); // Memory
usage 2 MB
getch();
for( int i=0; i<5000000; i )
{
DOMNode * node = e1->cloneNode(true);
node->release();
}
printf("Step 2\n"); // Memory
usage 158 MB !!!
getch();
doc->release();
printf("Step 3\n"); // Memory
usage 7 MB
getch();
XMLPlatformUtils::Terminate();
return 0;
}
//--------------------------------------------------------
---------------------------
What happened - memory usage:
step 1 - 2 MB,
step 2 - 158 MB (!!!),
step 3 - 7 MB.
--
Best regards,
alexch mailto:[EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]