>What is the reason for so many class files getting created?

XSLTC really does produce code for more than one kind of object -- there's
the main translet, and then there are support classes which help to
implement it. (For example, a filter object that implements a complicated
predicate test.) There's nothing here that you need, or want, to "control";
it's inherent in  doing code generation in an object-oriented environment.


>My whole purpose of switching over to compilation based XSLTC is get
better performance.
>But with a single request, I see hardly a 10% improvement in  performance

A "single request", for a short input document may not be enough for the
JVM's JIT compiler to fully optimize the code and hence may not perform as
well as multiple requests and/or larger documents.

Note too that  if you're transforming to and from XML text, a lot of the
processor's time is spent in the parser and serializer. Switching to XSLTC
doesn't significantly affect those costs.  (I don't remember the actual
numbers, but just to illustrate the point: If reading and writing XML
syntax is burning 33% of our runtime, then even if the compiled engine was
infinitely faster than the interpreted engine you'd only see a 2-times
total speedup!) If you want to benchmark the actual transformation speed,
you'll have to factor those out.

Similarly: XSLTC, like interpretive Xalan, suffers a performance hit when
processing from a DOM. In interpretive mode, we incrementally build a DTM
proxy layer around the DOM. In XSLTC, we're currently recopying the DOM's
entire contents into a new DTM, which may be significantly more expensive.


Even if we focus on the engine itself, how much you benefit from moving to
XSLTC depends on the exact characteristics of your stylesheet, size of your
source document, etc.


>What could I be missing in terms of better tuning XSLTC?

Sanity check: How much effort have you put into tuning your stylesheet?
It's often possible to get a significant speed-up from rewriting your XSLT
logic to avoid unnecessary/repeated work, and it's not uncommon for that to
help more than switching to XSLTC did. (Of course, if you do both you get
the benefit of both.)

______________________________________
Joe Kesselman, IBM Next-Generation Web Technologies: XML, XSL and more.
"The world changed profoundly and unpredictably the day Tim Berners Lee
got bitten by a radioactive spider." -- Rafe Culpin, in r.m.filk

Reply via email to