Dmitry Konstantinov created FELIX-5247:
------------------------------------------

             Summary: Reduce number of threads created by Resolver during a 
startup of OSGi-based applications
                 Key: FELIX-5247
                 URL: https://issues.apache.org/jira/browse/FELIX-5247
             Project: Felix
          Issue Type: Improvement
          Components: Framework, Resolver
    Affects Versions: resolver-1.8.0, framework-5.4.0
            Reporter: Dmitry Konstantinov


Thread creation is a quite expensive operation, so it make sense to reuse 
threads in ResolverImpl if they are needed to split some task and do it in 
parallel.
For example: Apache Karaf startup with several features can install about 300 
bundles. If each one will create Runtime.getRuntime().availableProcessors() 
threads - so, during a startup about 1000 threads will be created only by 
Resolver (in case of a server machine even much more). Thread creation takes 
let's say (depends on machine, JDK, OS, etc) about 10-20 ms, so we are spending 
about 1-2 seconds of startup time only to create some threads.

it make sense to create a thread pool once (with a configurable thread number) 
and reuse it for resolving of different bundles.



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

Reply via email to