So what I found is that if I hit the “Perform GC” button on JvisualVM to 
perform an explicit garbage collection, the same query
that was taking 20 seconds or more instantaneously comes down to taking about 6 
milliseconds. Its processing time then starts to
creep up back towards 20 seconds or more.

Is this an embedded configuration? Or are you looking at the Network Server?

If it's embedded, have you considered the possibility that it's something other
than Derby that's consuming the memory?

See if you can use a tool like this:

http://www.eclipse.org/mat/

to get some overall histogram of memory consumption before and after
that explicit GC.

It might also make it easier to run your experiment under a smaller JVM,
with a smaller workload, because you'll have less overall data to record
and the analysis tools will be more responsive.

But the patterns may be less clear.

thanks,

bryan

Reply via email to