Re: [xslt] Isn't it time to make libxslt multi-threaded?
- From: Nick Wellnhofer <wellnhofer aevum de>
- To: xslt gnome org
- Subject: Re: [xslt] Isn't it time to make libxslt multi-threaded?
- Date: Thu, 26 Jul 2012 17:07:31 +0200
On 26/07/2012 16:32, Дмитрий Грибов wrote:
Yes, due to the functional nature of XSLT, xsl:for-each and
xsl:apply-templates can be parallelized automatically. It would make
for an interesting project, but I doubt you'll find someone who
wants to implement this on top of libxslt. I think that most users
of libxslt don't need lower latency for processing of a single
stylesheet.
And that's strange, I tell you. I've seing some laggy xslt-based sites
and one of the most importaint problems with xslt on the web is
performance and responsivness.
Quite a while ago, I did extensive performance comparisons of many Perl
based templating solutions and I found libxslt to be faster than all of
them, at least when using compiled stylesheets. So I guess the sites
you're talking about are doing something wrong or have performance
problems in other areas.
You wrote that you process "a huge and dedicated xml". Do you by
chance load a large XML file with the "document" function? That's
the only situation where I ran into performance problems in the
past, because the parsed XML file won't be cached across
transformations.
Our XML isn't that "large" to make things painfull, about 100kb - 500kb.
And there is no way (at least I see none) to cache anything except XML
as text fragments and then feed concatenation to "parse_string" (what we
really do most of the time). Not too elegand, but parse_string() takes
less than ~0.01s and I know what I'm paying for. I doubt I can get more
of it without breaking the whole data-presentation brilliance to peaces.
Yes, with Perl I found that creating the XML input document with simple
string concatenation and then calling parse_string() to be much faster
than constructing the document using the DOM-like functions of libxml.
Using this technique and compiled stylesheets, the XSLT transformation
of a typical web page takes well below 10 milliseconds in my experience.
On the other hand, XSLT is very powerful and can easily be abused for
things that should better be done with a real programming language.
Also note that libxslt has profiling support (see xsltproc --profile).
That might help with optimizing your stylesheets.
Nick
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]