On Tuesday 23 September 2003 19:48, Conal Tuohy wrote:
> Cheers Niclas
> I am definitely NOT using a JIT.
> not the usual HotSpot machine.
> Plus I have to run it in classic mode when debugging anway :-)
> Actually the Unix JVM runs sweetly apart from these huge delays associated
> with the XSLT transforms ... are you suggesting it's all garbage
> collection? hmmm... maybe I'll have a play around with the gc settings on
> the JVM.
In the original mess, you said "a few seconds". Could you be a bit more
specific? 2 or 20?
If it is near the 2sec line, I doubt that it is timeout related, DNS or
otherwise. Things I can think of;
* Memory runs out and thrashing (virtual memory access) sets in. If it is a
special JVM, there could be funny rules built-in on how much RAM an app would
be allowed to take and starts swapping for preservation reasons.
* The JVM is actually that slow, that the 30ms transformation on HotSpot takes
a second in the JVM+mode in question. On a large Sun UltraSparc server in
2000, we had 500 caffinemarks, whilst I had ~10,000 on my desktop JVM with
HotSpot on Linux with same clock speed as the server.
* It tries to retrieve DTDs or ENTITY references over the network. Network
operations are slow.
* The XML parser or XSLT processor is not "standard", and have performance
problems.
* Some weird threading issue. Do you know of the so called "green threads" are
used or not? What happen if you try and run with -green switch?
It is very hard to say.
Try to do an "strace" if they have that on Tru64. "strace" is a system call
tracer, and I have it on Linux, so....
Basically, you need to find the PID of the JVM process. Which on Linux is done
with
ps ax
but I remember vaguely that other switch parameters are used on Unix, maybe
ps ef
Then do in a new console window
strace -f -pPID >someFile 2>&1
that will send all the system calls to "someFile". The -f switch tells strace
to trace all child processes as well, so just pick the top level java PID
number.
Then do in separate console,
tail -f someFile
And you will see there as the content is being added.
Then do a request, and try to capture where in the hundreds or more system
calls there is a delay (press mouse and let it be marked, for instance). If
it is not within a system call, you have ruled out network issues, and have
to go into JVM checks.
You might have a "connect(" call, in which case it will tell you which port
and IP it is connecting to, and take it from there...
Hope it can help...
Niclas
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]