[ https://issues.apache.org/jira/browse/FELIX-4656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14357331#comment-14357331 ]
Thomas Watson commented on FELIX-4656: -------------------------------------- I have not looked at the changes in much detail. I have your branch loaded and am trying to use it first. It has issues with the org.apache.felix.resolver.util.CopyOnWriteList<T> implementation. There are lots of optional operations that you have neglected to implement in this class. This breaks all fragment scenarios where we need to create shadow lists to hold the hosted capabilities. I have been adding the implementations of these methods as I go to try and see if it is a quick fix. But I have to ask why you don't just use java.util.concurrent.CopyOnWriteArrayList<E> here. > Improve memory usage and speed of the resolver > ---------------------------------------------- > > Key: FELIX-4656 > URL: https://issues.apache.org/jira/browse/FELIX-4656 > Project: Felix > Issue Type: Improvement > Components: Resolver > Reporter: Guillaume Nodet > Assignee: Guillaume Nodet > Fix For: resolver-1.2.0 > > > During big resolutions (> 100 bundles), the memory consumption can become > very huge, mostly by keeping a lot of copies of the Candidates object. > I want to lower the memory requirements of the resolver without touching the > algorithm at all (which would be a different improvement). > This can be done by using : > * lower memory intensive collections > * do smart copies of those collections (where they would only actually copy > the data when modify) > The second item is slightly more difficult to achieve, as the maps in the > Candidate objects contains Set and List, which would mean that those must be > copied too. So it could actually be complementary, if achievable. > For the first one, the HashMap and HashSet are very memory intensive. I'll > introduce two new collections which will lower the requirements. -- This message was sent by Atlassian JIRA (v6.3.4#6332)