La reflexión es lenta en general en Java y no solo en Android.
Tome este código por ejemplo:
Reflexión de clase pública { public static void main (String [] args) lanza Exception { int bucles = 100000; inicio largo = System.currentTimeMillis (); for (int i = 0; i <bucles; i ++) { Reflexión reflexión = nueva reflexión (); } extremo largo = System.currentTimeMillis (); System.out.println (fin - inicio); inicio = System.currentTimeMillis (); for (int i = 0; i <bucles; i ++) { Reflexión reflexión = (Reflexión) Class.forName ("Reflexión"). NewInstance (); } end = System.currentTimeMillis (); System.out.println (fin - inicio); } }
El primer bucle tarda unos 4 ms y el segundo bucle tarda unos 54 ms. El reflejo utilizado anteriormente es bastante simple, lo haces incluso un poco complicado, las cosas empeorarían y rápidamente.
- ¿Cuántos usuarios de Android hay en Australia (febrero de 2011)?
- Tengo cero conocimiento en Java y Android. Quiero ser desarrollador de Android en 3 meses. ¿Qué debo hacer?
- Android vs. iOS, ¿qué es mejor en general (apariencia / marca / rendimiento ...)?
- ¿El sistema operativo Android se hará cargo del sistema operativo Windows en la industria informática?
- ¿Cómo puedo usar aplicaciones de teléfonos celulares en mi computadora portátil?
Para cualquier código de rendimiento, es mejor mantenerse alejado de la reflexión tanto como sea posible. La reflexión debe usarse solo cuando sea realmente necesario.