java - provides - Guice Performance en Android
guice provides (4)
A partir de la versión 3, Guice almacena en caché objetos reflectantes para mejorar el rendimiento. Hay al menos un error en contra de dalvik para que las búsquedas de anotación sean más rápidas, pero el rendimiento actual es viable.
Como desarrollador de Java, me he acostumbrado a tener la inyección de dependencia disponible en las aplicaciones. Para Android, sin embargo, soy especialmente desconfiado del rendimiento. ¿Cuáles son las implicaciones de rendimiento para usar Guice en una aplicación de Android? Supongo que hay algunos gastos generales, pero ¿es lo suficientemente importante como para evitar el uso de Guice?
Mi uso probablemente solo sea para inyectar algunos objetos compartidos en varias actividades.
Definitivamente, deberías usar Dagger 2 para proyectos de Android si te preocupa el rendimiento.
Dagger 2 no usa la reflexión para escanear el código de tu aplicación. La implementación estática en tiempo de compilación de Dagger significa que se puede usar en aplicaciones de Android sin costos de tiempo de ejecución o uso de memoria innecesarios.
Evitaría usar DI en Android como Google sugiere: http://developer.android.com/training/articles/memory.html#DependencyInjection
Dagger resuelve algunos problemas de tiempo pero aún desperdicia memoria sin ningún beneficio real.
Roboguice (y Guice) pueden degradar significativamente el tiempo de inicio de la aplicación. Mi aplicación de tamaño moderado y que aún no está completa tardó casi 15 segundos en iniciarse en un HTC EVO 4g.
Eche un vistazo a Dagger como una alternativa que prácticamente no debería generar gastos generales de inicio.