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.
