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 |
|
Steve Tinney - Tue, 18 Jan 2000 21:00:41 -0500
|
|