[
https://issues.apache.org/jira/browse/FELIX-4656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14160285#comment-14160285
]
Thomas Watson commented on FELIX-4656:
--------------------------------------
Can you explain more about the Path data-structure. I do not follow what the
Path holds and how it determines that it has already been attempted. A
solution contains many paths to different capabilities. Because a path is bad
in one combination does not mean it will be bad if a different combination is
used with other paths.
I did run the code through my own tests and it does pass except for one test
that is testing substituted exports. I need to investigate, but I suspect it
is an ordering issue with the test and not an issue with the resolver.
While using the felix resolver I had to move to doing an incremental resolution
(one bundle at a time) to avoid explosions in the algorithm. I reverted this
back to doing "big bang" resolution. I did find that the improvements here had
about a 3x improvement on resolution. At this point I am unsure if that 3x
improvement was a result of the improvements on memory consumption and making
the candidates copy more efficient or if it was the 'path' optimization.
> Improve memory usage 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)