[ https://issues.apache.org/jira/browse/UIMA-5306?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Peter Klügl reassigned UIMA-5306: --------------------------------- Assignee: Peter Klügl > 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 > Assignee: Peter Klügl > > 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 org.apache.uima.ruta.type.RutaBasic > 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. > {code:Java} > private int[] partOf = new int[((TypeSystemImpl) > getCAS().getTypeSystem()).getLargestTypeCode()]; > private Collection<?>[] beginMap = new ArrayList<?>[((TypeSystemImpl) > getCAS().getTypeSystem()) > .getLargestTypeCode()]; > private Collection<?>[] endMap = new ArrayList<?>[((TypeSystemImpl) > getCAS().getTypeSystem()) > .getLargestTypeCode()]; > > {code} > 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 (v6.3.15#6346)