> -----Original Message-----
> From: Brian Minchau [mailto:[EMAIL PROTECTED] 
> 
> David,
> Nice that it ran faster on your laptop. Too bad about the 
> Solaris 8 box. Makes me think of some sort of synchronization issue.
> 
> Can you tell me more about your testcase?

The code is deployed as an EAR to WebLogic, and an HTTP listener
receives a SOAP message.  The body is extracted and passed to a
transformer class that uses the stylesheet, and then the output is sent
back to the SOAP client.  The stylesheet is fairly simple, with just a
single template matching "/" which produces the entire result, using
"xsl:value-of" calls to extract the content from the source.  After the
first read of the stylesheet file, it caches the Templates object and
uses that for all subsequent calls to the same stylesheet.  My client
app (always running on my laptop) runs a testing pass sending the same
message 1000 times.

In each test, I measure the time from sending the message from the SOAP
client until the response comes back.  In each session, I send 1000
copies of the same message, synchronously.

When the server runs on my laptop, the average round trip from SOAP
client back to the SOAP client is ~87ms for Xalan 2.4.1 and ~80ms for
Xalan 2.7.0.  When the server runs on a Solaris 2.8 box on our LAN, the
average round trip is ~280ms for Xalan 2.4.1 (lots of network latency
there), but when the server is using Xalan 2.7.0, the time goes up to
~570ms.

I think I'm going to modify the server code so that it calculates an
average time just for the transform call, so I can isolate it from the
other parts of the infrastructure.

One thing I've noticed about the server performance is that it appears
to be very much I/O bound on Solaris, but not on Windows.  It's probably
comparing apples to oranges, but I found that my laptop is at about
97-98% CPU during the test, but the Solaris box only gets up to about
18% CPU.

> I built a test case with an xslt in my messaging bus.  I 
> tested it on my laptop with both Xalan-J 2.4.1 and Xalan-J 
> 2.7.0 (although that was a while ago).  I found that Xalan-J 
> 2.7.0 improved performance a little bit.  I then copied the 
> same test case to a Solaris 8 box.  I found that the test 
> case with Xalan-J 2.7.0 took TWICE as long than with Xalan-J 
> 2.4.1.  I tried it several times, with the same results (in 
> each version).  I'm toggling between the two Xalan versions 
> by using the "endorsed" directory of the JRE.  I put the 
> xalan.jar, xml-apis.jar, xercesImpl.jar, and serializer.jar 
> from Xalan-J 2.7.0 into the endorsed directory, and I rename 
> the directory when I test it with version 2.4.1.
> 
> My test case is running 1000 of the same transformation, 
> synchronously on the same thread.  I'm using a cached 
> Templates object to get the Transformer object from.
> 
> Is there something simple that could be causing this unusual 
> performance degradation in version 2.7.0?

Reply via email to