After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 165107 - Pathological slowness with big inputs to big outputs in method="text" mode
Pathological slowness with big inputs to big outputs in method="text" mode
Status: RESOLVED INCOMPLETE
Product: libxslt
Classification: Platform
Component: general
1.1.8
Other Linux
: Normal normal
: ---
Assigned To: Daniel Veillard
libxml QA maintainers
Depends on:
Blocks:
 
 
Reported: 2005-01-24 16:44 UTC by Christian Jaeger
Modified: 2010-05-12 08:48 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Christian Jaeger 2005-01-24 16:44:46 UTC
Conversion is taking about half an hour on 2Ghz (Intel/AMD) Machines running
Debian/Suse Linux.
The same data/xsl is taking 42 seconds using
java -Xms64m -Xmx1500m org.apache.xalan.xslt.Process -IN a.xml -XSL E2Person.xsl
-OUT outfile

I'm seeing this with:
libxslt 1.1.8 & libxml 2.6.11 (Debian Sarge), 
libxslt 1.0.32 & libxml 2.5.10 (Suse 9.0)

using ps, I'm seeing this ram usage: it's relatively constant at ~170MB.
VSZ    RSS
176560 172460  # at time  1:54
182412 175388  # at time 10:07 

Example data is an xml input file with 105298 elements having 11 subelements
each (see below), total size of the file is 26'648'576 bytes.

<?xml version="1.0" encoding="utf-8"?>
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
  <asx:values>
    <E2PERSON>
      <PLVAR>01</PLVAR>
      <EVTYP>E</EVTYP>
      <EVEID>50020541</EVEID>
      <ISTAT>1</ISTAT>
      <RETYP>P</RETYP>
      <RESID>01001333</RESID>
      <REBEG>2005-04-04</REBEG>
      <REEND>2005-04-04</REEND>
      <BEGUZ>10:00:00</BEGUZ>
      <ENDUZ>11:00:00</ENDUZ>
      <INSTX>X</INSTX>
    </E2PERSON>
    <E2PERSON> <!-- ~100'000 more of those -->
      <PLVAR>01</PLVAR>
....

The XSL is basically:

<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:asx="http://www.sap.com/abapxml"   
  version="1.0">

  <xsl:output method="text"/>
  <xsl:strip-space elements="*"/>
  
  <xsl:param name="semester" select="1"/>

  <xsl:template match="asx:abap">
    <xsl:apply-templates select="asx:values"/>
  </xsl:template>
  
...

  <xsl:template match="E2PERSON">
    <xsl:variable name="datum">'<xsl:value-of select="REBEG"/>'</xsl:variable>
    <xsl:variable name="zeit_von">'<xsl:value-of select="BEGUZ"/>'</xsl:variable>
    <xsl:variable name="zeit_bis">'<xsl:value-of select="ENDUZ"/>'</xsl:variable>
    <xsl:variable name="veranstaltung" select="number(EVEID)"/>
    <xsl:variable name="person" select="number(RESID)"/>
    <xsl:value-of select="concat('INSERT INTO tmp VALUES
(',$datum,',',$zeit_von,',',$zeit_bis,',',$veranstaltung,',',$person,',',$semester,');')"/>
    <xsl:text>
</xsl:text>
  </xsl:template>

</xsl:stylesheet>

You can get the input xml and the xsl at:
http://elvis-jaeger.mine.nu:5080/~chris/.wohcxsl/
Comment 1 Christian Jaeger 2005-01-24 17:32:34 UTC
time xsltproc --stringparam semester 2 --output foo.sql E2Person.xsl a.xml
with libxslt 1.1.8 & libxml 2.6.11:
real
28m52.493s
user
27m36.320s
sys
0m2.200s

with libxslt1.1 1.1.12 & libxml2 2.6.16:
real
31m10.634s
user
27m42.870s
sys
0m3.130s
Comment 2 Javier Jardón (IRC: jjardon) 2010-03-24 03:05:12 UTC
You reported this bug a while ago and there hasn't been any activity in it
recently. We were wondering if this is still an issue for you.

Can you please check again if the issue you reported here still happens in a
recent version and update this report by adding a comment and adjusting
the 'Version' field?

Again thank you for reporting this and sorry that it could not be fixed for the
version you originally used here.

Set to NEEDINFO, so without feedback this report will be closed as INCOMPLETE
after 6 weeks.
Comment 3 Tobias Mueller 2010-05-12 08:48:38 UTC
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for.
Thanks!