You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by Daniel Cosio <dc...@gmail.com> on 2021/08/24 14:49:32 UTC

UIMA 2.7 + Subiterator performance issue

Hi, I'm upgrading my UIMA framework to 2.10.2.. Yes I know that is still old but I have some dependencies that do not allow me to go further just yet..

My project is on 2.4.0 so I was upgrading to 2.10.2..

I ran my test cases and I'm seeing a huge performance hit in the Subiterator.. 
I use ctakes to do some Negation and It used it's own ContextAnnotator.. I profiled the JMV and provide the call stack of the hot method below.. 

Was there any new setting I need to use that Im missing that would cause this performance hit..

my UIMA 2.4.0 run in 2 seconds.. 2.10.2 run in 9 minutes.. I did see in 2.7.0 the Subiterator was changed significantly. From what I was reading this has something to so with FSIndex modifications and corruption.. Is there anything I can do to move past this.. 

Appreciate any help
Regards
Dan

Re: UIMA 2.7 + Subiterator performance issue

Posted by Richard Eckart de Castilho <re...@apache.org>.
Hi,

> On 24. Aug 2021, at 16:49, Daniel Cosio <dc...@gmail.com> wrote:
> 
> my UIMA 2.4.0 run in 2 seconds.. 2.10.2 run in 9 minutes.. I did see in 2.7.0 the Subiterator was changed significantly. From what I was reading this has something to so with FSIndex modifications and corruption.. Is there anything I can do to move past this.. 

Here are some pointers on how to address the situation:

https://uima.apache.org/d/uimaj-2.11.0/references.html 

See Section "4.5.1. Updating indexed feature structures"

Hope it helps.

Cheers,

-- Richard



Re: UIMA 2.7 + Subiterator performance issue

Posted by Daniel C <dc...@gmail.com>.
Forgot to include the profile stack
Stack Trace";"Sample Count";"Percentage(%)"
"java.lang.Thread.run()";"35,170";"99.983"
"   org.apache.uima.aae.UimaAsPriorityBasedThreadFactory$1.run()";"35,157";"99.946"
"      org.apache.uima.adapter.jms.activemq.JmsInputChannel.onMessage(MessageWrapper)";"35,157";"99.946"
"         org.apache.uima.adapter.jms.activemq.JmsInputChannel.onMessage(Message, Session)";"35,157";"99.946"
"            org.apache.uima.aae.handler.input.MetadataRequestHandler_impl.handle(Object)";"35,157";"99.946"
"               org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handle(Object)";"35,157";"99.946"
"                  org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handleProcessRequestFromRemoteClient(MessageContext)";"35,157";"99.946"
"                     org.apache.uima.aae.handler.HandlerBase.invokeProcess(CAS, String, String, MessageContext, String)";"35,157";"99.946"
"                        org.apache.uima.aae.controller.PrimitiveAnalysisEngineController_impl.process(CAS, String, Endpoint)";"35,157";"99.946"
"                           org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(CAS)";"35,157";"99.946"
"                              org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(CAS)";"35,157";"99.946"
"                                 org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl, CAS)";"35,157";"99.946"
"                                    org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas()";"35,157";"99.946"
"                                       org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(CAS)";"35,157";"99.946"
"                                          org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(CAS)";"35,157";"99.946"
"                                             org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl, CAS)";"35,157";"99.946"
"                                                org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas()";"35,157";"99.946"
"                                                   org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(CAS)";"35,157";"99.946"
"                                                      org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(CAS)";"35,157";"99.946"
"                                                         org.apache.uima.analysis_component.JCasAnnotator_ImplBase.process(AbstractCas)";"35,157";"99.946"
"                                                            org.apache.ctakes.necontexts.ContextAnnotator.process(JCas)";"34,053";"96.807"
"                                                               org.apache.ctakes.necontexts.ContextAnnotator.getScopeContextAnnotations(JCas, Annotation, Annotation, int)";"23,446";"66.653"
"                                                                  org.apache.ctakes.necontexts.ContextAnnotator.getRightScopeContextAnnotations(JCas, Annotation, Annotation)";"14,955";"42.515"
"                                                                     org.apache.uima.cas.impl.Subiterator.moveToNext()";"10,024";"28.497"
"                                                                        org.apache.uima.cas.impl.Subiterator.adjustForStrictForward()";"9,985";"28.386"
"                                                                           org.apache.uima.cas.impl.FSIteratorWrapper.moveToNext()";"9,677";"27.51"
"                                                                              org.apache.uima.cas.impl.FSIndexRepositoryImpl$PointerIterator.inc()";"8,249";"23.451"
"                                                                                 org.apache.uima.cas.impl.FSIndexRepositoryImpl$PointerIterator.moveToNext()";"8,249";"23.451"
"                                                                                    org.apache.uima.cas.impl.FSIndexRepositoryImpl$PointerIterator.heapify_down(ComparableIntPointerIterator, int)";"7,733";"21.984"
"                                                                                       org.apache.uima.cas.impl.FSIndexRepositoryImpl$PointerIterator.is_before(ComparableIntPointerIterator, ComparableIntPointerIterator, int)";"7,013";"19.937"
"                                                                                          org.apache.uima.cas.impl.FSIntArrayIndex.compare(int, int)";"7,013";"19.937"
"                                                                                             org.apache.uima.cas.impl.FSLeafIndexImpl.compare(int, int)";"3,589";"10.203"




On 2021/08/24 14:49:32, Daniel Cosio <dc...@gmail.com> wrote: 
> Hi, I'm upgrading my UIMA framework to 2.10.2.. Yes I know that is still old but I have some dependencies that do not allow me to go further just yet..
> 
> My project is on 2.4.0 so I was upgrading to 2.10.2..
> 
> I ran my test cases and I'm seeing a huge performance hit in the Subiterator.. 
> I use ctakes to do some Negation and It used it's own ContextAnnotator.. I profiled the JMV and provide the call stack of the hot method below.. 
> 
> Was there any new setting I need to use that Im missing that would cause this performance hit..
> 
> my UIMA 2.4.0 run in 2 seconds.. 2.10.2 run in 9 minutes.. I did see in 2.7.0 the Subiterator was changed significantly. From what I was reading this has something to so with FSIndex modifications and corruption.. Is there anything I can do to move past this.. 
> 
> Appreciate any help
> Regards
> Dan
>