Ed,
please open a JIRA issue against XalanJ2 and attach your stylesheet (which
I presume isn't too big) and your input XML. Please don't attach a
multi-megabyte XML document. If the form of that XML is something like
this:
<doc>
<record>...</record>
<record>...</record>
...
<doc>
then please just attach a small sample with instructions on how many times
a particular <record> needs to be repeated to get the performance issue
that you are reporting.

Please include how you are running this. Is it from the command line with
org.apache.xalan.xslt.Process, or just how?

----------
Brian Minchau
XSLT Development, IBM Toronto
e-mail:        [EMAIL PROTECTED]



                                                                           
             "Edward L. Knoll"                                             
             <[EMAIL PROTECTED]                                             
             dex.com>                                                   To 
                                       [EMAIL PROTECTED]            
             09/28/2004 11:23                                           cc 
             AM                                                            
                                                                   Subject 
                                       Re: Why does copy transform take so 
             Please respond to         long?                               
                 xalan-dev                                                 
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




The goal of this performance test was to attempt to characterize the
performance of our real XSL which transforms an input XML to an output
XML.   Most of the input XML elements will appear in the output XML.  A
significant percentage of the input XML elements are transformed; such
transforms always introduce child elements in the output XML.

My purposes in doing this test was to provide a lower bound on our
performance; we can not be faster then executing a simple transform
which copies input to output.   Taking advantage of the built-in
identity transform wouldn't not support this evaluation.

We use the output DOM, because from this stage we will both (a)
serialize the output to a file and (b) apply a second transformation to
the output DOM.

The input DOM may not be strictly necessary for actual operation; we get
our input as a byte-array and I could use a stream source for the
input.   However, for purposes of evaluating and isolating the different
contributors to the performance, I wanted to separate the time to parse
the input XML from the time to transform the input XML.

 From my perspective (unless I'm missing something which is why I posted
here), this copy transform should represent the lower bound on our
performance.

Santiago Pericas-Geertsen wrote:

>
> On Sep 27, 2004, at 3:17 PM, Edward L. Knoll wrote:
>
>> I'm running on a Sun/Solaris platform.  We're running Xalan-J 2.4 and
>> JDK 1.4.  Our Java program does the following:
>> - loads the XSL style sheet into a javax.xml.transform.Templates,
>> - loads the XML file into a javax.xml.transform.dom.DOMSource
>> - transforms the DOMSource into a javax.xml.transform.dom.DOMResult
>>  using javax.xml.transform.Transformer
>> - serializes the DOMResult to an output file using
>> org.apache.xml.serializer.Serializer
>
>
>  Do you really need all these steps? This will create 3 DOMs in
> memory, the input, the output and the internal one created by Xalan
> (DTM). Seems unnecessary, but I don't know exactly what the app is doing.
>
>> The core template we're using for the copy is the following:
>>
>> <xsl:template name="CopyAll" match="*">
>>    <xsl:copy>
>>       <xsl:copy-of select="@*" />
>>       <xsl:apply-templates />
>>    </xsl:copy>
>> </xsl:template>
>
>
>  Could you use the built-in identity transform instead? Not the same
> as the stylesheet above, but may have the same outcome depending on
> the XML files that you're processing --note that using the built-in
> identity transform will not require the creation of a DTM.
>
>> Following is a breakdown on the performance:
>> - loading the stylesheet : 1.7 seconds
>> - loading XML file : 0.3 seconds
>> - creating Transform instance from Transforms: <0.1 seconds
>> - serializing to output file: 0.4 seconds
>> - executing copy transform: 2.1 seconds
>
>
>  Are these averages of multiple runs? These are awfully high numbers.
> Have you run this 100 or more times dropping the first few iterations
> to exclude class loading, etc.?
>
> -- Santiago
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>

--
Edward L. Knoll   Phone (FedEx)     : (719)484-2717
                  e-mail (FedEx)    : [EMAIL PROTECTED]
                  e-mail (personal) : [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to