uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dennis Bauer (JIRA)" <...@uima.apache.org>
Subject [jira] [Created] (UIMA-5306) Memory Improvement - Unnecessary leaks
Date Thu, 09 Feb 2017 14:54:41 GMT
Dennis Bauer created UIMA-5306:

             Summary: Memory Improvement - Unnecessary leaks
                 Key: UIMA-5306
                 URL: https://issues.apache.org/jira/browse/UIMA-5306
             Project: UIMA
          Issue Type: Improvement
          Components: Ruta
    Affects Versions: 2.3
         Environment: Windows 10, JVM with -Xmx 1024, Java JDK 1.8., 16gb memory
            Reporter: Dennis Bauer

In a productive setup we figured out, that there is a huge memory usage of Ruta itself. With
JVisualVM it's easy to see, that there is a relative small amount of arrays of Arraylists
but with a high memory consumption (250k instances result in 243 000 000 byte memory that
are reserved)

The problem is, that in a clustered SaaS environment with less memory, these arrays block
relevant space in memory. A deeper look into these Arrays of Arraylist let suggest the class

A look at this class show three arrays that are instanced with the max. possible value, that
can be returned by the typesystem of CAS. 

  private int[] partOf = new int[((TypeSystemImpl) getCAS().getTypeSystem()).getLargestTypeCode()];

  private Collection<?>[] beginMap = new ArrayList<?>[((TypeSystemImpl) getCAS().getTypeSystem())

  private Collection<?>[] endMap = new ArrayList<?>[((TypeSystemImpl) getCAS().getTypeSystem())

In this improvement should be done an dynamic allocation of memory usage for these arrays,
so the total memory consumption would be reduced.

This message was sent by Atlassian JIRA

View raw message