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

Marshall Schor edited comment on UIMA-6200 at 3/29/20, 5:15 PM:
----------------------------------------------------------------

looking at the suggested fix, it's one of caching the result of parsing the 
descriptor.

I'm now wondering if a more "general" fix might be appropriate, that cached 
more than just one of these.

The key to doing more might lie in having some understanding / estimate of the 
number of times such a cache would be beneficial, given envisioned "use-cases". 

Is the use-case that creates the value from caching the fixed-flow applicable 
to other use-cases for other descriptors?

My guess is that the fixed-flow controller descriptor might be the only one 
benefiting significantly from caching, because it's probably used way more than 
custom flow controllers, and the custom ones might only be parsed once per 
"run" anyways.


was (Author: schor):
looking at the suggested fix, it's one of caching the result of parsing the 
descriptor.

I'm now wondering if a more "general" fix might be appropriate, that cached 
more than just one of these.

The key to doing more might lie in having some understanding / estimate of the 
number of times such a cache would be beneficial, given envisioned "use-cases". 

Is the use-case that creates the value from caching the fixed-flow applicable 
to other use-cases for other descriptors?

> 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