DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13225>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13225

XPath's selectNodeList performance degrades when using Xerces as DOM.

[EMAIL PROTECTED] changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED



------- Additional Comments From [EMAIL PROTECTED]  2002-10-02 23:47 -------
Luckily, this is an easy fix! ;-)

Change this line:

pXalanDOMDoc = pXercesParserLiaison->createDocument( cXercesDOMDoc );

to this:

pXalanDOMDoc = pXercesParserLiaison->createDocument( cXercesDOMDoc, false, 
true );

That should fix the problem you're seeing.  The limitations:

1. You must not create the bridge until you've finished modifying the document.
2. If you modify the document, you must destroy the bridge and re-create it.

If you need the bridge to be thread-safe, the call should be:

pXalanDOMDoc = pXercesParserLiaison->createDocument( cXercesDOMDoc, true, 
true );

If the limitations will work for you, then you're all set.  Otherwise, their's 
nothing that can be done, since the time being consumed is a result of having 
to order the document on-the-fly.

Here are my results, after the fix:

V:\test\Coble>Release\XalanExe //Keyword fast_result.xml
Xalan Results: 130 milliseconds to parse the file.
               30 milliseconds to perform the search.
               6546 items were returned.

Xerces Results: 191 milliseconds to parse the file.
                50 milliseconds to perform the search.
                6546 items were returned.

Benchmarking complete:  Xalan DOM beat Xerces DOM by 20 milliseconds.

V:\test\Coble>Release\XalanExe //Keyword slow_results.xml
Xalan Results: 70 milliseconds to parse the file.
               10 milliseconds to perform the search.
               1922 items were returned.

Xerces Results: 100 milliseconds to parse the file.
                30 milliseconds to perform the search.
                1922 items were returned.

Benchmarking complete:  Xalan DOM beat Xerces DOM by 20 milliseconds.

Reply via email to