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



Reply via email to