[ 
https://issues.apache.org/jira/browse/FELIX-4692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14251844#comment-14251844
 ] 

Richard S. Hall commented on FELIX-4692:
----------------------------------------

I think it would be easier to answer the question I posed before changing the 
control flow to make it more convoluted, but you can do whatever you want. I am 
just not a fan of solving issues without first trying to understand what the 
heart of the issue is. It may be that there is no other way to improve 
performance other than special casing it, but looking at the code it seems like 
a pretty straight path, so it would be interesting to know why it goes wrong.

The point being, is that it is a generic indexing mechanism which can index any 
property. If we can see that there is some way to speed it up, then we speed it 
up for all other use case...this is also used in the resolver, for example.

> Improve Service access time
> ---------------------------
>
>                 Key: FELIX-4692
>                 URL: https://issues.apache.org/jira/browse/FELIX-4692
>             Project: Felix
>          Issue Type: Improvement
>          Components: Framework
>    Affects Versions: framework-4.4.1
>            Reporter: Felix Meschberger
>            Assignee: Felix Meschberger
>             Fix For: framework-4.6.0
>
>         Attachments: FELIX-4692.diff
>
>
> Currently the ServiceRegistry takes roughly 1ms to access a single service. 
> In a reasonably large system, this may over time consume considerable time.
> For example in our inhouse system sporting roughly 5000 services with 15'000 
> service accesses during startup, these accesses acount for almost 15 seconds 
> or roughly 25-30% of the total startup time.
> Internally all accesses to services are handled with a Filter even if the 
> service is simply retrieved with the service name without a filter. This 
> causes a considerable overhead.
> A simple improvement is to keep services not only in a global Capabitliy Set 
> accessible through generic filters but also keep such a set for each 
> registered service name.
> The measured improvement of this change is substantial: accessing these 
> 15'000 services now only takes roughly 3 seconds or 0.2 ms per service or 5 
> times faster.



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

Reply via email to