2011-08-10 28 views
6

Tengo una pregunta general sobre el uso del servicio OSGi EventAdmin. Actualmente lo estoy usando en un entorno donde potencialmente se pueden generar miles de eventos por segundo. Mi temor es que el servicio EventAdmin pueda ser un cuello de botella. Los resultados iniciales que obtengo de mi generador de perfiles parecen apoyar esto. Las preguntas que tengo son:Cuándo usar OSGi EventAdmin y cuándo no?

  1. ¿Existe una regla general sobre cuándo utilizar el servicio EventAdmin?
  2. ¿Cómo difieren los métodos sendEvent y postEvent en términos de rendimiento?
  3. ¿Hay un contenedor OSGi particular que se sabe que tiene una implementación de EventAdmin de bajo rendimiento?

Gracias de antemano por su apoyo!

Saludos, Georg

Respuesta

6

¿Tiene más información sobre el cuello de botella que se ve?

Tenemos una actualización para las especificaciones del administrador de eventos (ver RFC 157 en [1]) para ayudar con algunos problemas de rendimiento. Pero este no es un trabajo de especificación completado todavía.

Enviar evento es un envío síncrono, por lo que el hilo de llamada bloquea hasta que todos los oyentes hayan sido notificados. La mayoría de las implementaciones usan el hilo de llamadas. El evento de publicación no bloquea a la persona que llama. Pone en cola el trabajo de otro hilo para entregar el evento. La especificación actual de administración de eventos requiere ordenar eventos asíncronos, por lo que esto puede causar demoras si no se requiere el pedido. RFC 157 proporciona la capacidad de no requerir este orden.

No tengo datos sobre si una implementación es antes mejor o peor que otra.

[1] http://www.osgi.org/Download/File?url=/download/osgi-4.3-early-draft2.pdf

+0

ahora he probado nuestro código, tanto en el Félix y los contenedores de Equinox OSGi. Por lo que veo, parece que Félix parece ser más eficiente que Equinox con respecto al manejo de eventos. También es mucho más eficiente en memoria que Equinox. Creo que me quedaré con Felix por el momento. – BumbleGee

Cuestiones relacionadas