xsl-list
[Top] [All Lists]

RE: Merging 2 XML's in to 1 output XML (Performance Issue)

2005-10-12 14:37:32

Mike,
      SAXON did improve the performance more than 10 times comparing to
XALAN. I wonder why people are still using XALAN. Are there any specific
areas where XALAN performs better than SAXON??

I have one more question. Is there any difference in performance using
'Saxon-SA' comparing to 'Saxon-B'? Anyhow I will try SAXON-SA in coming
weeks. Good work Mike, your parser is a super fast engine.

David,
     Keys really boosted the performance. Now I can process two 110MB
files within 1 minute. This is un-believable.
 
The case I have given was simplest but in real time I need to apply some
other conditions. These results are really promising and encouraging for
us.

Thanks for the suggestion and help.

Regards,
Srini


-----Original Message-----
From: David Carlisle [mailto:davidc(_at_)nag(_dot_)co(_dot_)uk] 
Sent: Wednesday, October 12, 2005 11:16 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Merging 2 XML's in to 1 output XML (Performance
Issue)

say for each record in InputXSL1 with Key match in InputXSL2 get 
                                       ^^^^

The answer is (probably) in your description. You are repeatedly
traversing the other tree to find a st:VehicleTT with the same DFFileId
as the current node. xsl:key is designed to optimise such access 9often
by orders of magnitute).

<xsl:template match="//st:VehicleTT">

You don't want the // there (all it does is change the priority, nit the
nodes matched)

I think you just want
<xsl:stylesheet version="1.0">

<xsl:output method="xml" indent="yes" />

<xsl:variable name="aggregator" select="document('InputXML2.xml')" />

<xsl:template match="/">
        <st:VehicleTDoc>
                <xsl:apply-templates/>
        </st:VehicleTDoc>
</xsl:template>

<xsl:key name="v" match="st:VehicleTT"
use="concat(xdd:DFFileId,':',xdd:RSNo)"/>

<xsl:template match="st:VehicleTT">
    <st:VehicleTT>
            <xsl:copy-of select="*"/>
<xsl:variable name="key" select="concat(xdd:DFFileId,':',xdd:RSNo)"/>
<xsl:for-each select="$aggregator">
 <xsl:copy-of select="key('v',$key)/xdd:SName"/>
</xsl:for-each
</xsl:template>
        
</xsl:stylesheet>


________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--