Android Instant Ejecutar compilaciones lentas

Sigo escuchando la ejecución instantánea discutida como si estuviera en una gran forma, sin embargo mi equipo y yo regularmente experimentan problemas significativos con la característica, y una experiencia de codificación degradada debido a ella.

Antes de ejecutar instantáneamente, nuestras compilaciones limpias eran ~ 1min 30sec, y después de eso nos gustaría obtener compilaciones que eran ~ 25sec o el ocasional 40sec. Mientras que ejecutar instantáneamente parece disminuir las builds a veces a 6-12 segundos, otras veces, nos ha hecho entrar en locos compilaciones largas que hemos visto tomar hasta 13 minutos, compensando en gran medida las ganancias de la compilación incremental.

También parece que la mayoría del tiempo, pequeños cambios siguen tomando 40 segundos. A veces es de 6 segundos, pero eso es bastante raro.

Se siente mucho como la ejecución instantánea ha degradado nuestra capacidad para trabajar de manera coherente y eficiente. Estas son algunas de nuestras configuraciones específicas de la aplicación:

Android Studio 2.1.1, Plugin para Android 2.1

multiDexEnabled true dexOptions { preDexLibraries true javaMaxHeapSize "4g" maxProcessCount 4 incremental true dexInProcess true } org.gradle.daemon=true org.gradle.parallel=true org.gradle.jvmargs=-Xmx6g -XX:MaxPermSize=512m 

¿Estamos haciendo algo mal, o alguien ha encontrado un trabajo alrededor?

EDIT : Varios desarrolladores parecen estar encontrando esto. Estoy siguiendo un error aquí. Siéntase libre de protagonizarlo y añadirlo a la discusión.

Estamos obteniendo un rendimiento mucho mejor de la ejecución instantánea ahora. Estos son los cambios que hicimos:

  1. Descubrimos que Lombok estaba causando una pérdida de memoria en el daemon con ejecución instantánea. Hemos identificado la fuga de memoria, ya que usando un daemon recién calentado, nuestra construcción tardaría ~ 15 segundos, pero después de una hora de construir la aplicación con los cambios, nuestra construcción empezaría a tomar> 1 minuto para los cambios más simples. Encontramos que la migración de nuestra aplicación de lombok fijó la fuga de memoria.
  2. Dejamos de usar intercambio de código caliente y caliente instantáneo. Encontramos que éstos a menudo causaban errores o problemas, por no mencionar que necesitaba prestar atención a si o no lo que estaba cambiando requería que la Application se volviera a cargar. En su lugar, empezamos a usar la función de intercambio en frío. Cold swap es activado por el botón "Rerun", que es de 4 botones a la derecha del botón de reproducción / inicio en Android Studio. Es el botón de parada con la flecha que sale del lado izquierdo y sube. Cold swapping el código en ejecución instantánea nos pareció más fiable, y también realiza un reinicio de la aplicación completa, que actúa esencialmente como una compilación normal, excepto más rápido.
  3. Actualizado a la última versión de Android Studio plugin. El complemento ha mejorado. Todavía tiene problemas, pero es mejor. Espero más correcciones de errores con el complemento 2.3

En general aún no es perfecto. Todavía tengo que soportar problemas de compilación extraña, y hacer construir limpia de vez en cuando. Todavía se siente como una beta.

  • Android Studio 2.0 ejecutar instantáneamente no funciona, pero aparecen estos consejos?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.