|
Subject: Re: Fwd: Re: [xsl] suggestions for per request xslt performance? From: Nic James Ferrier <nferrier@xxxxxxxxxxxxxxxxxxxx> Date: Thu, 26 Apr 2007 11:10:10 +0100 |
Andrew Mason <andrew@xxxxxxxxxxxxxxx> writes:
>> 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.
That's what I was getting at. You need the libxslt transformContext
support tho as I recall...
My python transform wrapper looks like this:
try:
stylesheet = libxslt.newStylesheet()
stylesheet = stylesheet.parseStylesheetProcess(stylesheet_dom)
except Exception, e:
logger.error("failed to parse xslt: " + str(e))
raise ProcessException(e)
else:
try:
transform_context = stylesheet.newTransformContext(src_dom)
result_dom = stylesheet.applyStylesheetUser(src_dom, {}, transform_context)
except Exception, e:
logger.error("failed to run XSLT")
raise ProcessException(e)
I can cache the stylesheet_dom (which is what I do rather than caching
the processor).
You say "importStylesheet" I'm not sure what that means.
Have you tried breaking the stylesheet creation down into:
1. create stylesheet source dom
2. create processor from that dom?
You normally do that with:
parseStylesheetDoc(doc)
but you can also do it as I've done the above.
--
Nic Ferrier
http://www.tapsellferrier.co.uk
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: Fwd: Re: [xsl] suggestions for , Andrew Mason | Thread | [xsl] adding book sequence to the s, fatma helmy |
| Re: Fwd: Re: [xsl] suggestions for , James A. Robinson | Date | Re: [xsl] undo a transformation, Garvin Riensche |
| Month |