Hi Michael,<div><br></div><div>I will check the details inside Yanel later this week, and I can share the results.</div><div><br></div><div>I also quickly read about XSLTC, the drawback is that you can not apply quick fixes in a XSL anymore, as XSL files are built and stored as class files, being part of the classpath. So changes to a XSL is only visible after a JVM restart...</div>
<div><br></div><div>Thanks for the quick answer, I'll update some facts later here about this topic.</div><div><br></div><div>Cheers</div><div>Balz</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Nov 5, 2012 at 2:03 PM, Michael Wechner <span dir="ltr"><<a href="mailto:michael.wechner@wyona.com" target="_blank">michael.wechner@wyona.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
Dear Balz<br>
<br>
Am 05.11.12 11:43, schrieb basZero:
<div class="im"><blockquote type="cite">dear all,
<div><br>
</div>
<div>I wonder the following and I'd be interested to hear your
thoughts about it:</div>
<div><br>
</div>
<div>When creating a resource which is subclassed of Yanel's
BasicXMLResource, the following happens:</div>
<div><br>
</div>
<div>- getView() gets called by Yanel</div>
<div>- then the resource's getContentXML() gets called: here you
prepare the XML document that at the end is passed to the XSL
transformation</div>
<div>- getTransformedInputStream() gets called: here the actual
XSLT is performed.</div>
<div><br>
</div>
<div>I wonder the following regarding performance:</div>
<div><br>
</div>
<div>- the XSLT process includes the transformation of XSL files
into Java template objects.</div>
<div>- The creation of such template objects certainly takes time
and is probably done for every request</div>
<div><br>
</div>
<div>What can be done to reduce the time needed for the XSLT part
of a request time?</div>
</blockquote>
<br></div>
Yanel currently uses Xalan 2.7.0, whereas it might make sense to
upgrade to 2.7.1.<br>
<br>
Also I assume that Yanel currently is using the interpreter instead
XSLTC. See<br>
<br>
<a href="http://marc.info/?l=xalan-j-users&m=122551369713293" target="_blank">http://marc.info/?l=xalan-j-users&m=122551369713293</a><br>
<br>
but I guess we could change it rather easily or make it configurable
somehow. (whereas we should check first what it is really using ;-)<div class="im"><br>
<blockquote type="cite">
<div><br>
</div>
<div>- Did anybody use precompiled templates (e.g.: the XSLT
transformer only compiles the XSL, if it has changed since the
last compilation), I read some articles about this
pre-compilation topic which should boost the whole XSLT time
dramatically</div>
<div>- Split up include files into smaller ones?</div>
<div><br>
</div>
<div>Generally asking: </div>
<div>- Did you do anything specifically regarding performance of
XSLT?</div>
</blockquote>
<br></div>
no, because so far the XSLT was never the real problem. In most
cases the bottleneck was rather the custom code, e.g.<br>
code which generated the XML to start with, but which didn't scale
for whatever reasons.<div class="im"><br>
<blockquote type="cite">
<div>- If so, what did you apply?</div>
</blockquote>
<br></div>
My suggestion is to first check whether Yanel is using interpreter
or XSLTC and if interpreter, then try to switch to XSLTC.<br>
<br>
Depending on how dynamic your page is, you could of course generate
static files (with a double buffer) and then server them from the
filesystem of even from the memory. (and maybe include the dynamic
parts).<br>
<br>
HTH<br>
<br>
Michael<br>
<blockquote type="cite">
<div><br>
</div>
<div>Cheers</div>
<div>Balz</div>
<br>
<fieldset></fieldset>
<br>
</blockquote>
<br>
</div>
<br>--<br>
Yanel-development mailing list <a href="mailto:Yanel-development@wyona.com">Yanel-development@wyona.com</a><br>
<a href="http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development" target="_blank">http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development</a><br></blockquote></div><br></div>