I think it is clear from the 12sec->7.8 sec drop that keeping logging/stdout output reduced helps performance. Keeping quiet seems to be Xalan's approach as well.
I looked at our commericial competitors' sites to see where they are with logging. It appears RenderX doesn't log by default but it has a server-side EnMasse product which does configurable logging. AntennaHouse apparently just uses stdout/stderr, but I don't know how much output it produces while running. Since the logging level is nonconfigurable, I would suspect not much.
 http://www.renderx.com/enmasseguide.html  http://www.antennahouse.com/support/qa/QA-product.html#QA2003082202
Jeremias Maerki wrote:
I've just run readme.fo (from the examples) through both 0.20.5 and CVS HEAD, 20 times in 1 thread, to satisfy my curiosity. I don't want to hide these numbers from you:
0.20.5 takes 6.3 seconds for that.
CVS HEAD took over 12 seconds at the beginning but spitting out lots of
debug messages. After converting the System.out calls to log.debug calls
and setting the log level to SEVERE, the time went down to 7.8 seconds.
A subjective impression I had was that CVS HEAD took longer to warm up (i.e. classloading plus initialitation).
readme.fo is a document that except for references looks fine in both versions, although CVS HEAD produces one page more (11 instead of 10). It looks like the line heights differ quite a bit.
For all those who'd say now that "the new FOP is too slow, I'm going somewhere else" (or something like that), bear in mind this is all preliminary and based on non-optimized code and work in progress. I was simply curious and I'm sure others are, too. At least, we can say, it's not that bad and nothing is lost. :-)
More later, probably with measurements with tables and on memory consumption.