David, thanks for the help. I have logged this, with files and 'Xalan -t' results for 1_9 and 1_10.
Created: (XALANC-593) Poor performance with a complex XSL stylesheet and ... Sean --- David Bertoni <[EMAIL PROTECTED]> wrote: > Sean Ryan wrote: > > Hello, > > > > To reproduce this problem I think you will need my XSL and XML files. But > > I don't want to > > overload the mail list... (I already sent a massive message to the subscibe > > address - sorry > about > > this but I don't use mailing lists much). > > > > Yes, we'll need your input files. > > > The main app I have is a fairly memory hungry GUI, so I tried running the > > Xalan transform in > its > > own process, > > this helped a bit. > > The performance in RELEASE is about 2 minutes. > > The performance in DEBUG is about 30 mins. > > This is similar to the performance of the Xalan sample > > 'XalanCallbackTransformer' (RELEASE 2 > > minutes, DEBUG 11 minutes). > > > > Well, the performance is 3x slower for your application with the debug > configuration, so that seems significant. > > > > >>Are you by any chance using a ostrstream or ostringstream instance as to > >>hold the result of the transformation? > > > > > > I am using a callback handler, and it uses a vector of string objects on > > the heap. > > I don't think this is related to the problem - nearly all the time is spent > > processing BEFORE > > there is more than 1KB of output. > > > > OK. > > > > >>You cannot build Xalan-C without Xerces-C, and I'm not sure why you > > > > > > I got the idea from the Apache page: > > http://xml.apache.org/xalan-c/usagepatterns.html#xercesdomwrapperparsedsource > > > > "Performance is much better when Xalan-C++ uses native source tree handling > > rather than > > interacting with the Xerces DOMParser". > > What does this mean then, if Xalan cannot be built without Xerces ? > > > > Yes, that could be clearer, but it's a comment about that particular > usage pattern. It involves wrapping an instance of Xerces-C's > DOMDocument for use as the source tree for a transformation. I will try > to re-write some of that documentation to make it a bit clearer. > > > > >>any performance issues, so why do you think Xerces-C is the problem in > >>your code? > >> > >>Please show us some code that shows us how you are invoking Xalan-C. In > >>particular, show us how you are handling the output of the transformation. > >> > > > > > > I believe the problem is with Xalan-C not Xerces-C, since even the sample > > 'XalanCallbackTransformer' takes 2 minutes in RELEASE build. > > Here is my code in any case: > > Without knowing the timing breakdown of parsing the source tree, parsing > the stylesheet, and the actual transformation, it's hard to determine if > that time is excessive. > > Here's the best approach, I think: > > 1. Create a Jira issue and attach your source XML and stylesheet files. > 2. Download Xalan-C 1.10 and test to see if there is any performance > difference with the latest version of the sample > XalanCallbackTransformer application. > 3. Run your transformation with the Xalan executable with the -t option, > to see the timing information. Also, make sure you redirect the output > to a file: > > Xalan -t -o foo.out document.xml stylesheet.xsl > > That will tell you exactly where the time is being consumed. > > Once you create the Jira issue and attach the XML files, someone can > look at what's happening. It could be your stylesheet is very complex, > and that's the problem. Or, it could be your source file is quite > large, and it's taking a long time to parse the source file. > > Dave > ___________ Sean Ryan