uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marshall Schor (JIRA)" <...@uima.apache.org>
Subject [jira] [Commented] (UIMA-5801) Performance degradation of jCas.reset when repeatedly used in different analysisEngines
Date Mon, 25 Jun 2018 21:33:00 GMT

    [ 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

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
> 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

View raw message