You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@aries.apache.org by "John Ross (JIRA)" <ji...@apache.org> on 2015/08/28 18:04:46 UTC

[jira] [Resolved] (ARIES-1388) Compute requirement filters only once.

     [ https://issues.apache.org/jira/browse/ARIES-1388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

John Ross resolved ARIES-1388.
------------------------------
    Resolution: Fixed

http://svn.apache.org/r1698360

> Compute requirement filters only once.
> --------------------------------------
>
>                 Key: ARIES-1388
>                 URL: https://issues.apache.org/jira/browse/ARIES-1388
>             Project: Aries
>          Issue Type: Improvement
>          Components: Subsystem
>    Affects Versions: subsystem-2.0.2
>            Reporter: John Ross
>            Assignee: John Ross
>              Labels: performance
>
> ResourceHelper.matches(Requirement, Capability) is an often used method during resolution. Currently, it recomputes the requirement filter with each call.
> The measurements used the same test scenario being developed as part of ARIES-1357. The time it took to install 50 features was measured. Each feature consists of 10 bundles plus one application. All features share the same 10 bundles. Each bundle exports 5 unique packages. Each application consists of 10 unique bundles. The bundles import packages offered by the containing feature.
> The baseline average time for installing all 50 features was 67.9 seconds.
> AbstractRequirement will now lazily compute the requirement filter when asked for the first time. Subsequent calls will return the already computed value.
> ResourceHelper now asks whether or not the Requirement is an instance of AbstractRequirement. If so, it asks for the filter directly. If not, the filter is computed as before.
> After these modifications, the average time for installing all 50 features was 46.6 seconds, a 31.3% improvement.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)