cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Carsten Ziegeler" <cziege...@s-und-n.de>
Subject [IMP] Performance problems with TraxTransformer
Date Tue, 28 Oct 2003 20:22:23 GMT
While debugging/profiling a very big application for our
customer I found out that the current implementation
of the TraxTransformer is slowing down caching!

Why? Well, the caching algorithm asks every sitemap
component if the cached content is still valid. The
TraxTransformer answers this question by looking
if the stylesheet has changed since the last use 
(time stamp comparison).
So far so good, but you can have imports/includes
in your xslt, so the TraxTransformer checks them
as well - and this is done by "parsing" the
xslt and looking at all includes/imports. This
parsing is done, even when the content is fetched
out of the cache. 

Due to this mechanism, each stylesheet is parsed
on every request (if cached content is used or not)
which is in most cases unnecessary.
As we didn't use the "use-store" parameter of the
xslt transformer this is a real performance problem!

As the parsing is very time consuming, delivering
a cached content is still "slow". We had figures,
where a cached content took 1.5 sec (and producing
it from scratch took 1.8 sec).

With the recent changes we are down below 100ms for
delivering the cached content!
I added a "check-includes" configuration to the 
TraxTransformer. If you set it to "false" imported
stylesheet are not checked for changes for the 
caching, but you really feel the performance
difference.

So, you loose a little bit comfort but gain a lot
of performance improvements. And if you use it only
for production, it shouldn't be a problem anyway.
(The default is "as-is")

PS: The new feature will be released with 2.1.3 in
approx. two weeks.

Carsten


Mime
View raw message