[Mono-bugs] [Bug 585843] New: XslCompiledTransform major performance issue with select descendants specifying attribute values

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Fri Mar 5 11:26:36 EST 2010


http://bugzilla.novell.com/show_bug.cgi?id=585843

http://bugzilla.novell.com/show_bug.cgi?id=585843#c0


           Summary: XslCompiledTransform major performance issue with
                    select descendants specifying attribute values
    Classification: Mono
           Product: Mono: Class Libraries
           Version: 1.2.0
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Sys.XML
        AssignedTo: atsushi at ximian.com
        ReportedBy: tom_hindle at sil.org
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


Created an attachment (id=346837)
 --> (http://bugzilla.novell.com/attachment.cgi?id=346837)
xslt

User-Agent:       Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1;
Trident/4.0; GTB6.3; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR
3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

Using xpath descendants (//) with attribute match appears to be (at least?) 50
times slower on mono than on .NET

The following xslt on a faily small data set (1MB) takes over 50s, on mono and
under a second on .NET.

<xsl:variable name="LexEntries" select="//LexEntry"/>
<xsl:variable name="sAllStemNamesUsedInLexicalEntries">
        <xsl:for-each select="$LexEntries">            
            <xsl:variable name="stemallos" select="//MoStemAllomorph[
@IsAbstract='0']"/>
        </xsl:for-each>
    </xsl:variable>

Removing the attribute match [ @IsAbstract='0'] reduces the time to about 6
seconds on mono.

Changing the //MoStemAllmorph to /M3Dump/Lexicon/Allomorphs/MoStemAllomorph
reduces the time to about 2 seconds

While doing both these changes reducing the time to about 1.5 seconds.


Attaching Test case

Reproducible: Always

Steps to Reproduce:
1. Compile and run attached test case
2.
3.
Actual Results:  
Transform: ..\..\transform.xsl input file: ..\..\data.xml
        Starting at: 09:12:31.7613750
        Ending at: 09:13:24.4332500
        Process took: 00:00:52.6718750 c:\out.txt
Press any key to continue . . .

Expected Results:  
Transform: ..\..\transform.xsl input file: ..\..\data.xml
        Starting at: 09:15:02.5113750
        Ending at: 09:15:02.5895000
        Process took: 00:00:00.0781250 c:\out.txt
Press any key to continue . . .

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list