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]

Reply via email to