Hi,
Can you help a bit on the poor-man's profiling? In the class of
org.apache.tuscany.sca.extensibility.osgi.OSGiServiceDiscoverer and
org.apache.tuscany.sca.extensibility.osgi.OSGiServiceDiscoverer.ClassLoaderImpl,
there are API calls such as:
BundleContext.getBundles()
Bundle.getEntry(...)
Bundle.findEntries(...)
It would be really helpful if you can give us some rough ideas around these
potential bottlenecks.
Thanks,
Raymond
From: Rajini Sivaram
Sent: Friday, August 29, 2008 7:50 AM
To: [email protected]
Subject: Performance of extensibility-osgi
I think there is a very big classloading performance issue with
extensibility-osgi. Running itest/osgi-tuscany/osgi-tuscany-test takes three
times as much time using the ServiceDiscoverer in extensibility-osgi
compared to using the standard Classloader based ServiceDiscoverer using the
BundleClassloader as we used to.
With the current build of Tuscany on my thinkpad:
Using extensibility-osgi
[INFO] Apache Tuscany OSGi-Based Tuscany Runtime Tests ....... SUCCESS
[14:09.609s]
The same build without extensibility-osgi (with BundleClassloader as TCCL)
[INFO] Apache Tuscany OSGi-Based Tuscany Runtime Tests ....... SUCCESS
[3:54.796s]
These figures show around 10 minutes extra execution time, attributed purely
to classloading differences. Even though these tests show a worst-case
scenario since there is an awful lot of classloading going on here with
Tuscany being loaded many times, I think we should address this because the
impact is significant.
Thank you...
Regards,
Rajini