[ https://issues.apache.org/jira/browse/MNG-6668?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Osipov closed MNG-6668. ------------------------------- Resolution: Fixed Fixed with MNG-6671. > Model location handling uses too much memory > -------------------------------------------- > > Key: MNG-6668 > URL: https://issues.apache.org/jira/browse/MNG-6668 > Project: Maven > Issue Type: Bug > Components: core > Reporter: Stefan Oehme > Assignee: Michael Osipov > Priority: Major > Fix For: 3.6.2 > > > Every model element in Maven has one or several Location objects associated > with it. These locations specify where in the POM each attribute of that > object was configured. This is a very useful feature for better error > messages and IDE assistance, but its current implementation takes too much > memory. > Locations are currently tracked with a LinkedHashMap, with String keys and > Location values. LinkedHashMap has a large overhead per entry. In a > particularly large build that I was investigating, just this overhead summed > up to almost 3GB of memory. However, there is actually no need for arbitrary > Strings or a Map. The keys are always the name of the corresponding field in > the model class. So instead we could create one Location field for every > actual data field in the model and then switch over the String key to assign > the Location to the correct field. This would get rid of the LinkedHashMap > overhead altogether. It would add a small overhead for modello users who > don't care about location handling, but I assume that Maven is the only major > consumer of it. > > See [https://github.com/codehaus-plexus/modello/pull/31] and > [https://github.com/apache/maven/pull/252] -- This message was sent by Atlassian JIRA (v7.6.3#76005)