[ 
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)

Reply via email to