Subject: Re: Processor Performance From: Paul Levin <plevin@xxxxxxx> Date: Wed, 19 Jan 2000 10:25:14 -0500 |
Any particular reason for LotusXsl and the IBM XML Parsers not being included in the test ? WYSOCKI Adalbert wrote: > Finnaly someone interested in XSLT performance processors. > I asked for those informations before but nobody was able to give me a > response. > > Adalbert WYSOCKI > > I performed some tests resumed above: > > Tests on XSLT processors > ------------------------ > > The main point to evaluate in order to decrease the processing time applying > style rules to an XML document is to choose the best XSL Processor > associated with the best XML parser. I mean the processor that have the best > conformance with regards to XSLT recommendations and that processes style > sheets as fast as possible and as regularly as possible. For that we have > performed some test with each processor with different XSL documents and XML > documents to reflect different possible cases. Results are resumed in the > following paragraph. > > Tested processors > ----------------- > > - XT version Version 19991105 (the reference) written by James Clark > implementing the last recommendations(http://www.jclark.com) > - Saxon Version 5.0 written by Mike Kay implements the last recommendations > (http://users.iclway.co.uk/mhkay/saxon) > - Xalan v0.19.1 processor known in the past as Lotus XSL (It have been > offered by IBM to an open source apache XML project > (http://xml.apache.org)). > - Oracle v2_0_2_6 processor part of Oracle 8i database product. > > Enviromnent > ----------- > > - PC Pentium III 500 > - 256 Mo > - Windows NT 4.0 Server > - JDK 1.2.2 (+ JIT) > > Results > ------- > > For each test given results are: > > - An average on times get from the test performed 60 times > - The minimum value from 60 times > - The maximum value from 60 times > > ********* > * Test1 * > ********* > > Documents: > > - XML document: stats.xml (8ko) > - Style document: statistics_list.xsl (47ko) > > --------------------------------------------------------------------------- > -------------------------------------------- > |Processeur | XT + Xerces | XT + SUN | Saxon + Xerces | Saxon + > SUN | Xalan + Xerces | Oracle + Oracle | > --------------------------------------------------------------------------- > -------------------------------------------- > |Average (ms) | 54.58333333 | 51.75 | 108.6333333 | 159.9 > | 151.7167 | 169.75 | > |Min (ms) | 20 | 20 | 50 | 90 > | 80 | 140 | > |Max (ms) | 350 | 421 | 610 | 851 > | 932 | 1101 | > --------------------------------------------------------------------------- > -------------------------------------------- > > ********* > * Test2 * > ********* > > Documents: > > - XML document: stats2.xml (21ko) > - Style document: statistics_list.xsl (47ko) > > Changes: contracts BO with class="display" attribute has been increased by > 10 so that the matching of this BO in the XSL style sheet is made 10 times > more that in the preceding case. > > --------------------------------------------------------------------------- > -------------------------------------------- > |Processeur | XT + Xerces | XT + SUN | Saxon + Xerces | Saxon + > SUN | Xalan + Xerces | Oracle + Oracle | > --------------------------------------------------------------------------- > -------------------------------------------- > |Average (ms) | 165.2 | 220.8 | 368.55 | 419.1 > | 552.8 | 422.1 | > |Min (ms) | 110 | 140 | 281 | 320 > | 400 | 270 | > |Max (ms) | 650 | 670 | 962 | 1182 > | 1592 | 1472 | > --------------------------------------------------------------------------- > -------------------------------------------- > > XSLT Rules > ---------- > > I have performed some tests changing, replacing and inverting rules in XSL > style sheets. > We found a rule (use absolute path instead of //) that makes documents > processing 10 times quickly. > Resulting XSL documents will be processed in less than 100 ms. I think it is > satisfying comparing to database requests processing time. > > C/C++ vs. Java > -------------- > > Processors in C language are not yet available in general. The XSLT > recommendations are in most part based on the Java language especially > concerning some functions like those for number formatting or some others. > For those reasons their implementation in C language seems to be more > difficult than in Java. I have tested Xalan XSLT processor in its first > version. A lot of XSLT functionalities are not yet implemented and its debug > mode makes it process very slowly. I think to see very efficient XSLT > processor we have to wait some times. > > Results of the test performed on the summary.xsl and summary.xml documents. > ------------------------------------------ > |Processor | XT Java | Xalan C++ | > ------------------------------------------| > |processig | 500 | 2000 | > |time (ms) | | | > ------------------------------------------ > > XT processor DOM source or serialized DOM InputSource > ----------------------------------------------------- > > ------------------------------------------------- > | Serialized | Login | Summary | Stats | > | InputSource | page | page | page | > |-------------------------------------------------| > | | 40 | 240 | 130 | > | | 40 | 230 | 160 | > | | 40 | 260 | 120 | > | | 30 | 230 | 140 | > | | 40 | 240 | 120 | > | | 30 | 240 | 121 | > | | 40 | 240 | 100 | > | | 30 | 230 | 120 | > | | 60 | 270 | 120 | > | | 41 | 270 | 110 | > |-------------------------------------------------| > | Average | 39.1 | 245 | 124.1 | > ------------------------------------------------- > ------------------------------------------------- > | DOM Object | Login | Summary | Stats | > | | page | page | page | > |-------------------------------------------------| > | | 40 | 571 | 171 | > | | 30 | 521 | 130 | > | | 30 | 491 | 271 | > | | 40 | 430 | 130 | > | | 30 | 400 | 130 | > | | 41 | 401 | 140 | > | | 40 | 411 | 130 | > | | 30 | 390 | 120 | > | | 30 | 401 | 140 | > | | 40 | 400 | 130 | > |-------------------------------------------------| > | Average | 35.1 | 441.6 | 149.2 | > ------------------------------------------------- > > We can see that XT runs in general case better with a serialized InputSource > document that with a DOM object. > > Conclusions > ----------- > > Comparing to the fastest other XSLT processors XT is two times quickly. What > is important too is the difference between the behavior of the XT and Saxon > processor associated with from one part ProjectX parser (SUN) and from the > other part with Xerces parser (xml apache project). > > Annexe A > -------- > > - Stats.xml > > Size: 8ko > Contains: > > <?xml version="1.0" encoding="UTF-8"?> > <test> > <protocol> > <userrequest> > <xmldoc>common/statistics/statistics_offers_default.xml</xmldoc> > <statstype>offers</statstype> > <style>common/statistics/statistics_list.xsl</style> > <statsobjectid>1000</statsobjectid> > > <urlbase>/servlet/ImServlet?JServSessionId=3fe7ad6d23f5084e.3.944480829706&a > mp;</urlbase> > <dateformat>MM/dd/yyyy</dateformat> > </userrequest> > </protocol> > > <businessobject> > <merchant> > <id>1000</id> > <pagetitle>Welcom the best merchant pe qui peut tout "Peter" > !!!!</pagetitle> > <currentquarter>1</currentquarter> > <state>A</state> > <businesscontact> > <id>1000</id> > <login>pe</login> > <lastaccess>12/06/1999</lastaccess> > <profile>A</profile> > </businesscontact> > </merchant> > <offer> > <id>1000</id> > <name>http://www.perdu.com</name> > <familyRef>1000</familyRef> > </offer> > <contract class="display"> > <offer> > <name>http://www.perdu.com</name> > <commissionmethods> > <commissionmethodRef>1000</commissionmethodRef> > </commissionmethods> > <id>1000</id> > </offer> > <subscriber> > <affiliate> > <id>1010</id> > <name>aldo1</name> > </affiliate> > </subscriber> > <id>1016</id> > <name /> > <enddate format="MM/dd/yyyy">01/27/2000</enddate> > </contract> > > <!- contract BO with class="display" attribute x3 -- > > > <contract> > <offer> > <name>http://www.perdu.com</name> > <commissionmethods> > <commissionmethodRef>1000</commissionmethodRef> > </commissionmethods> > <id>1000</id> > </offer> > <subscriber> > <affiliate> > <id>1010</id> > <name>aldo1</name> > </affiliate> > </subscriber> > <id>1016</id> > <name /> > <enddate format="MM/dd/yyyy">01/27/2000</enddate> > </contract> > > <!- contract BO x3 -- > > > <parameter> > <id>6</id> > <name>Number of buy</name> > <type>F</type> > <backendparameterid>6</backendparameterid> > </parameter> > > <!-- parameter BO x11 --> > > <intervaldates> > <type>thismonth</type> > <dateformat>MM/dd/yyyy</dateformat><begindate > format="MM/dd/yyyy">12/01/1999</begindate> > <enddate format="MM/dd/yyyy">12/05/1999</enddate> > <numberofdays>4</numberofdays> > </intervaldates> > > <commissions> > <commissiondate format="MM/dd/yyyy">12/01/1999</commissiondate> > <commissiondate format="MM/dd/yyyy">12/05/1999</commissiondate> > <contract groupby="yes"> > <id>1016</id> > </contract> > <value>0.0</value> > </commissions> > > <!-- commissions BO x3 --> > > </businessobject> > </test> > > - Stats2.xml > > Size: 21 ko > Contains: > > The same that the preceding (stats.xml) but contracts BO with class=? > display? attribute has been increased by 10 so that the matching of this BO > in the XSL style sheet is made 10 times more that in the preceding case. > > - statistics_list.xsl > > Statistics_list.xsl > > Size: 47ko > Contains: Too long to be inserted > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: Processor Performance, WYSOCKI Adalbert | Thread | Re: saxon:evaluate() (was: sorting , Steve Tinney |
RE: XSL and XML in one file, Paul_Dick | Date | count, Marco . Mistroni |
Month |