I committed a new test case to
org.apache.uima.cas.impl.XmiCasDeserializerTest: It makes "n" copies of
the largest
test cas, and then starts 1, 2, 4, 8, ... n threads to serialize this
out using XMI serialization. It prints out the normalized
times for each of these runs.
It seems to work, but doesn't show any degrading when more threads are
run. (Perhaps the test case is faulty - please
take a look).
This would confirm my intuition that synchronization locking for the
"vector" get operation (which is just a fetch from an array) is unlikely
to be causing any slowdown here.
Greg - it would be good if you could run this test (from Eclipse - if
you have the SVN source checked out, you right-click the
class and select "run as JUNIT" and it runs (or maybe not - if it runs
out of memory - then just open the run menu on this runner, and add to
the vm args something like -Xmx384m)). If it works for you, please see
if you can isolate what's different in your failing case verses this
artificial test.
-Marshall
Marshall Schor wrote:
I'm going to try and make a test case to see if I can duplicate Greg's
slowdowns. If anyone has beaten me to it, please let me know right
away ;-)
-Marshall