[ 
https://issues.apache.org/jira/browse/UIMA-6200?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17070454#comment-17070454
 ] 

Richard Eckart de Castilho commented on UIMA-6200:
--------------------------------------------------

The one I left activated is the one that caches - yes. But I'd rather change 
that to using the {{makeDefaultDescription()}} instead.

The {{CapabilityLanguageFlowController}} currently also always parses an XML 
file in its {{getDescription()}} method.

These {{getDescription()}} methods are called from 
{{AggregateAnalysisEngine_impl.getDefaultFlowControllerDeclaration()}} if the 
aggregate doesn't come with an explicit flow controller description. So for 
custom flow controllers, it does not apply since these would always come with 
an explicit description in the aggregate since 
{{getDefaultFlowControllerDeclaration()}} doesn't know about them.

> Constructing aggregate engines is slow
> --------------------------------------
>
>                 Key: UIMA-6200
>                 URL: https://issues.apache.org/jira/browse/UIMA-6200
>             Project: UIMA
>          Issue Type: Bug
>          Components: Core Java Framework
>            Reporter: Richard Eckart de Castilho
>            Priority: Minor
>             Fix For: 2.10.5SDK
>
>         Attachments: Screenshot 2020-03-15 at 18.52.48.png
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Creating an aggregate engine is slow because every time a default fixed flow 
> descriptor is loaded from the classpath as XML and parsed.
> *FixedFlowController*
> {code}
>   public static FlowControllerDescription getDescription() {
>     URL descUrl = FixedFlowController.class
>             .getResource("/org/apache/uima/flow/FixedFlowController.xml");
>     FlowControllerDescription desc;
>     try {
>       desc = (FlowControllerDescription) UIMAFramework.getXMLParser().parse(
>               new XMLInputSource(descUrl));
>     } catch (InvalidXMLException e) {
>       throw new UIMARuntimeException(e);
>     } catch (IOException e) {
>       throw new UIMARuntimeException(e);
>     }
>     return desc;
>   }
> {code}
> IMHO, this should be loaded once and then cached permanently - or be 
> constructed completely programmatically (also once!) and never loaded at all.
>  !Screenshot 2020-03-15 at 18.52.48.png! 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to