473,323 Members | 1,560 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,323 software developers and data experts.

Why is Intel XSLT accelerator so slow ?

I have been testing different libraries to process XSL transformations
on large XML files.

The fact is that I read a document from Intel, stating their library
(XSLT accelerator) was more twice faster than Apache Xalan, and was
designed to perform well on large XML files.
- http://isdlibrary.intel-dispatch.com/isd/10/wp_XSLT.PDF
- http://www.intel.com/cd/software/pro...eng/366637.htm
Please note that their benchmark was only performed with small XML
files, under 200 ko.

I downloaded their evaluation version, configured it to work with 2
threads.
My computer specs are "dual core Intel processor (2.40GHZ), with 2GB
of ram".

I made tests on XML files that consists of a simple header and footer,
and the content is a sequence of the following piece of XML :

<log>
<timestamp>2008-01-02 00:00:08</timestamp>
<host name="mail-server">122.122.122.122</host>
<pid/>
<facility>mail</facility>
<priority>notice</priority>
<messageThe key values: Key1=A, Key2=C, Key3=E and Key4=G.
000008351</message>
<application name="Benchmark">
<action name="misc" color="FFFFFF">
<param tag="key1" name="Key1">A</param>
<param tag="key2" name="Key2">C</param>
<param tag="key3" name="Key3">E</param>
<param tag="key4" name="Key4">G</param>
</action>
</application>
</log>

By repeating this pattern, I made test files with different file
sizes, from 1MB to 200MB, and tested the XSL transformation process
(with an XSL file transforming the XML file to an HTML file) with the
two libraries.

For little XML files (under 4MB), Intel XSLT accelerator performances
were better than Xalan performances, but for bigger files, XSLT
accelerator starts to be _very_ slow (exponential growth of the
processing time).

An extract of the result of my benchmark :

10MB XML file
- Xalan : 4.5 seconds (processing time)
- XSLT accelerator : 19.4 seconds

30MB XML file
- Xalan : 11.4 seconds
- XSLT accelerator : 191.2 seconds

50MB XML file
- Xalan : 18.4 seconds
- XSLT accelerator : 548.4 seconds (~30 times slower !)

Concerning Intel library, the only configurations options were the
working thread number, and the memory allocated to the process. I
tried different settings, but always obtained the same results (and
the best results were for 2 working threads).

I contacted Intel support, but didn't get any explanation on this
problem.

I would like to know if anyone has already experienced the same
problem, and if there is a way to get Intel XSLT accelerator to
outperform Xalan performances on large XML file processing (or at
least to get the same performances).

Has anyone ever used Intel XSLT accelerator for large XML file
processing ?

In the end, does anyone know a library that really outperform Xalan
performances on XSL transformations, especially concerning the
OutOfMemoryError ?
(with my XML format and XSL sheet, this error occurs when the memory
allocated to the JVM is less than about 3.4 times the size of the XML
file I try to process)

(The reason I am interested in Intel library is that it doesn't seem
to crash even when processing large xml files. Xalan does, when the
memory allocated to the JVM is not enough)
Jun 27 '08 #1
2 3190
killy971 wrote:
By repeating this pattern, I made test files with different file
sizes, from 1MB to 200MB, and tested the XSL transformation process
(with an XSL file transforming the XML file to an HTML file) with the
two libraries.
Interesting, be aware that file sizes of 200 MB are
usually too large to be processes with XSLT. It will
work in principle, but should be done offline because
it simply takes too long for interactive use.
For little XML files (under 4MB), Intel XSLT accelerator performances
were better than Xalan performances, but for bigger files, XSLT
accelerator starts to be _very_ slow (exponential growth of the
processing time).

An extract of the result of my benchmark :

10MB XML file
- Xalan : 4.5 seconds (processing time)
- XSLT accelerator : 19.4 seconds

30MB XML file
- Xalan : 11.4 seconds
- XSLT accelerator : 191.2 seconds

50MB XML file
- Xalan : 18.4 seconds
- XSLT accelerator : 548.4 seconds (~30 times slower !)
Congratulations for your systematic analysis.
You have already found the problem:

Xalan run-time increases as O(n), this means roughly 5-fold run-time for 5-fold size.
XSLT accelerator run-time increases as O(n^2), this means roughly 25-fold run-time for 5-fold size.
This problem wont be solved by "optimization" in the usual sense.
The algorithm has to be changed.
Jun 27 '08 #2
>For little XML files (under 4MB), Intel XSLT accelerator performances
>were better than Xalan performances, but for bigger files, XSLT
accelerator starts to be _very_ slow (exponential growth of the
processing time).
Very different codebases. Probably different tradeoffs taken at all
levels from data structures to algorithms. I'm not surprised that the
performance curves cross each other.

Reminder; XSLT, in general, requires that the whole input document be
loaded into an in-memory data model since the stylesheet has full random
access to it. Efficiency of that model becomes a serious issue on large
docs, since swapping can be a performance-killer.

See much discussion on Xylem's mailing list archives of what we've done
over the years (including some "cheats" for some specific usecases), and
what we've considered as possible future directions if cycles ever
become available to invest in that work.
Jun 27 '08 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

5
by: Nick Bartos | last post by:
I am looking for an open source php accelerator that works in cgi mode. I am guessing that to do that the cache would have to be on disk and not in memory. I was looking at the turk accelerator...
2
by: Martin Plantec | last post by:
Hello, In another post, I mentionned I was using PHP with Sablotron 1.0 as my server-side XSLT processor. I have several websites, some of them with thousands pages. Everything is stored as...
17
by: Ozo | last post by:
What would be the C++ compiler producing the fastest code for Windows XP Pro (32-bit)? I have to choose between these two: - Visual C++ 2005 compiler - Intel C++ Compiler 9.0 for Windows My...
4
by: elsigh | last post by:
I'm wondering if anyone has any ideas about a way to quickly convert an HTML DOM Node into an XML Document. The goal is that I want to perform XSLT on the Node, which is coded correctly as XHTML....
2
by: bllfrnch | last post by:
Hi all, We use XSLT extensively here at work and made the jump to XSLT 2 back in January. Doing so increased productivity by leaps and bounds. Before we made the switch, we were often doing...
12
by: das | last post by:
Hello all, I am using .NET XSLT to transform an XML into another XML file. All this is fine with small files, but when tested with big files (30MB) it is taking between 1hr-2hrs to just transform...
2
by: Richard Lewis Haggard | last post by:
How does one specify the Escape key as an accelerator? My client has specified that the Escape key be used as an accelerator for a particular menu item. In VS05's designer mode, this particular...
2
by: B. | last post by:
I have a C# winform with accelerator key associated with some menus. If my exe is in unmanaged C++ and the winform is invoked through interop, the accelerator key not working. If I create a new...
3
by: super.raddish | last post by:
Greetings, I am relatively new to, what I would call, advanced XSLT/XPath and I am after some advice from those in the know. I am attempting to figure out a mechanism within XSLT to compare the...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.