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

Marshall Schor commented on UIMA-5801:
--------------------------------------

This class loader stuff is hard to conceptualize, for all of the edge cases.  
Before proceeding further, I'd like to understand from [~buerkle] what the use 
case is for creating an arbitrarily large number of Analysis Engines, that 
drove this issue.  

Some questions:  If there's a need to do this, would a reasonable solution from 
the user's point of view be that when they are "finished" using an AE, that 
they call an API in UIMA Core (e.g., the resource manager associated with the 
AE's "destroy" method)?

We have some open Jiras around wanting the "destroy" method on ResourceManagers 
to "close" any UIMA class loaders associated with the Resource Manager; we 
could add this bit of cleanup to that impl.

 
If the number of AEs being created is < ~ a dozen or 2, this is probably not 
really an issue.

I think a separate Jira might want to be opened for including the thread 
context class loader in some lookup chain - beyond looking up resource bundles 
for messages.  I assume the other use case would be for looking up UIMA objects 
(JCas classes, Annotator implementations, and external Resources - did I forget 
any?)

> Performance degradation of jCas.reset when repeatedly used in different 
> analysisEngines
> ---------------------------------------------------------------------------------------
>
>                 Key: UIMA-5801
>                 URL: https://issues.apache.org/jira/browse/UIMA-5801
>             Project: UIMA
>          Issue Type: Bug
>          Components: UIMA
>    Affects Versions: 2.1
>            Reporter: David Bürkle
>            Assignee: Marshall Schor
>            Priority: Major
>         Attachments: JCasPerformanceTest.java
>
>
> The execution time of jCas.reset() increases linearly when invoked on the 
> same jCas.
> This occurs in a loop that builds a new analysisEngine, processes the jCas 
> and resets it.
> This does not occur when the same analysisEngine is reused.
> A junit test demonstrating the behaviour is attatched.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to