Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
jmx-core-1.1.3
-
org.apache.felix.framework 5.0.1
Description
Around 20% of the startup time of our Felix OSGI container is spent creating attribute notifications for changed services in ServiceState#getAttributeChangeNotification. This is so slow because for each notification it calls bundleContext.getAllServiceReferences to get all service ids.
Here a few suggestions how this could be improved:
- The ServiceState could maintain its own list of service ids which is updated according to the service events
- The ServiceState could implement the NotificationEmitter directly and be aware when there are any listeners (in our case, there are mostly none).
- Make it possible to disable the attribute change notifications with configuration property.