Subject: Fwd: Re: suggestions for per request xslt performance?
From: Andrew Mason <andrew@xxxxxxxxxxxxxxx>
Date: Thu, 26 Apr 2007 12:04:21 +0930
|
On Wednesday April 25 2007 10:58:57 pm Nic James Ferrier wrote:
> "Andrew Mason" <andrew@xxxxxxxxxxxxxxx> writes:
> > I really appreciate your comments, however I'm not really looking
> > for a which language is better discussion at this time. I'm trying
> > to see what options are available (to us at the moment) in regards
> > to reducing the cost of importing the stylesheet. If there are
> > things that we can do from an xslt level, or if there are things
> > that can be done from a libxslt level to reduce that. If it is with
> > in the realms of possibility to cache xslt processors after they
> > have been built and be able to load them , I am sure that we could
> > convince the boss to pay someone to add this functionality, if
> > someone was willing to do it in libxslt. ( I can probably patch the
> > PHP implementation to support this if it is available with libxslt).
>
> This is really a libxslt question.... but I'll answer it anyway.
>
> 1. libxslt DOES have a Java implementation; you can find one at GNU's
> ClasspathX:
>
> http://www.gnu.org/software/classpathx
thanks. Will definately have a look at this. The fact that it works with GNU
classpath is especially good as that will probably work with OpenBSD.
>
> also search for libxmlj
>
> 2. there are hardware accelerators which can significantly help your
> xslt... this is a cool "plugin" approach
That is cool. I will have a look at this. It would definately solve the
problem in the immediate instance as we control the box it is running on.
>
> 3. if you have any kind of persistent store with PHP you can cache the
> stylesheet.
It's not the stylesheet that is the issue, it's the time taken to load the
stylesheet into the xslt processor. Creating the DOMDocument from the
stylesheet is quick. Processing the stylesheet is fast. The importStylesheet
function is probably comparitively fast too, however it's still too expensive
on a /request basis.
One of the other people on the list suggested memcached which might be an
option for caching the processor.
many thanks
Andrew
> I've managed to do it on python. I had to add
> transform_contexts to the python wrapper though, to make that
> possible.
|