Over the last week I've been working with Toadie (a Xalan user) who had
some very serious performance degradation with a webserver using Xalan.

On an intel dual-core machine it was 10 times slowdown than for a single
processor intel machine.

The problem occurs in this combination for the latest code:
- Intel dual-processor
- Sun JRE 5


Toadie's team was very capable and found that there was thread contention
with synchronized methods, either Xalan-J code or in JRE classes such as
java.util.Vector used by Xalan-J.  This performance problem was so bad that
thread contention just screamed at us, and made it easy to fine the "hot"
synchronization spots. With their direction I changed Vector to the
unsynchronized ArrayList in a number of locations got back most of the
performance for them.

Toadie previously let me know that a single processor did not have this
problem, and recently checked that the IBM JRE 5 does not have the same
synchronization performance problem on the dual-core machine.

So heads up on Xalan's next multiprocessor performance problem.

Hats off to Toadie who did a great job of analysis, providing hardware to
do the analysis, and even the patches.


- Brian Minchau
mailto:[EMAIL PROTECTED]

Reply via email to