Proceso Dex In para compilar rápido en Android Studio 2.1

Dex In es sin duda la mejora más importante de Android Studio 2.1, para compilar nuestros proyectos más rápidamente y no morir de la desesperación en el proceso.

Para comprobar la efectividad del proceso Dex In, hemos hecho una pequeña prueba: crear un proyecto vacío, y compilarlo con la configuración por defecto de Android Studio, y compararlo con la duración de la compilación con el proceso Dex In activado. Y vaya si se nota.

Si queréis repetir el experimento, no teneis más que crear un proyecto nuevo usando el asistente. Para ellos vamos al menú File->New->New Project, y le dais a vuestro proyecto un nombre cualquiera. Respetais los valores por defecto, y nosotros hemos elegido “Empty Activity” como la actividad por defecto de nuestra app.

Tras finalizar el asistente, y esperar unos segundos a que el proyecto este listo, realizamos nuestra primera compilación y desplegado sobre un emulador. Repetimos varias veces la compilación y desplegado, para hallar unos valores medios.

En el caso de mi pc, los valores siempre rondaban los 16 segundos:

BUILD SUCCESSFUL

Total time: 16.957 secs

Para realizar bien la prueba de comparación, aseguraros de limpiar el proyecto entre compilaciones en el menú “Run->Clean Project”.

Ahora veamos cómo acelerar la compilación. Para ello tenemos que activar el “Dex In Process” de Android Studio.

El proceso Dex In funciona permitiendo la ejecución multiples procesos DEX en una única instancia de máquina virtual compartida con Gradle y el requisito imprescindible para poder activarlo es que nuestro PC tenga mucha memoria ram, porque le vamos a asignar  mucha al daemon de Gradle.

Por decir una cantidad, a fecha de Mayo de 2016, tener un equipo de desarrollo con 32Gb de ram, no es una exageración. Pensad que si le asignamos entre 4 y 8 Gb al daemon de gradle, y tenemos quizás dos proyectos de Android Studio abiertos al mismo tiempo, ya estamos consumiendo entre 8 y 16 Gb de ram. Sumemosle las demás aplicaciones que usemos al mismo tiempo que desarrollamos, y subimos sin dificultad a los 20 – 25 Gb de ram usada.

Para incrementar la memoria asignada al daemon de Gradle, abrimos el fichero gradle.properties  de nuestro proyecto, y añadimos al final la línea que podeis ver en este ejemplo:

Como veis, hemos asignado 4Gb al daemon de Gradle. Si tenéis suficiente ram, podéis probar a asignar más, aunque llegado un límite, no se aprecia mejoría El mínimo para poder activar el proceso Dex In es de 2Gb.

A continuación, tenemos incrementar el valor de javaMaxHeapSize para que realmente la compilación se aproveche de esta nueva cantidad de memoria ram disponible. Para ello visitamos el fichero build.gradle de nuestra aplicación, y le añadimos lo siguiente

Probamos repetidas veces a compilar y desplegar nuestro proyecto de ejemplo, y los valores que obtenemos son parecidos al siguiente:

BUILD SUCCESSFUL

Total time: 6.302 secs

Esto es menos de la mitad, por lo tanto, sí que se nota la efectividad del proceso Dex In de Android Studio 2.1. Estamos hablando de un proyecto vacío, sin librerías de terceros, y sin clases propias, por lo que ya inicialmente compilaba “rápido“.

Si le aplicáis esta configuración a un proyecto real en el que estéis trabajando, de los que tardan un par de minutos en compilar, bueno, podeis pasar más tiempo programando, y menos tiempo esperando a que vuestro pc compile.

Y recordad que los consejos que di en el articulo “Optimiza tu entorno de desarrollo Android“, siguen siendo válidos. Especialmente, el mejorar el hardware de vuestro equipo de desarrollo: mucha memoria ram, un disco duro ssd, y un procesador, cuanto más potente, mejor.

 

1 comentario en “Proceso Dex In para compilar rápido en Android Studio 2.1

Los comentarios están cerrados.

SUBSCRIBE TO NEWSLETTER
All rights reserved © Company Name, 2014
Dolor aliquet augue augue sit magnis, magna aenean aenean et! Et tempor, facilisis cursus turpis tempor odio, cursus montes ac turpis. Ultrices! Massa integer augue ridiculus adipiscing, massa cras pid. Turpis placerat scelerisque, vut odio mus non, mattis porttitor, nunc odio, turpis tortor sit? Pid amet, sed facilisis.
  • Goblinus globalus fantumo tandempo
  • Scelerisque cursus dignissim donus
  • Montes vutario lacus quis arcupolisio
  • Leftomato denitro oculus tepircos den
  • Spiratio dodenus christmas popupius
  • Afrenius globalus spiritum tandempo
  • Fitatos vutario lacus quis arcup delis
SUBSCRIBE NOW!
Receive messages whit news about Smart Thermostat
  We will not share your details with any 3rd party.
¡SUSCRÍBETE AHORA!
Recibe en tu correo las novedades del proyecto Termostato Inteligente
  Tus datos no serán compartidos con terceros.