En Genexus Evolution 1 se incluyó la posibilidad de tener especificación y generación concurrente.
Es decir, comenzar a generar antes de que terminen de especificarse todos los objetos, de este modo en PCs "multi-core" podía estar un "core" especificando y otro "generando" a la vez. Se paralelizó el proceso lo cual produce una ganancia importante de performance.
En Genexus Tilo se introdujo un avance importante en este sentido puesto que se pueden levantar múltiples instancias de especificadores y generadores a la vez. De este modo se paraleliza aun más el proceso de "build" y se aprovecha más aun la potencia de los procesadores "multi-core".
En la opción Tools/Options/Build se puede elegir hasta cuantos especificadores y generadores concurrentes se podrán ejecutar. Así podríamos ver en el task manager algo como:
Donde se ven 4 procesos de MSBuild ejecutando a la vez.
Esto redunda en un mejor aprovechamiento de los "cores" pudiendo reducir el tiempo necesario para el "build" de una KB.
¿Cuánto mejora?
Aun no se han realizado mediciones pero la ganancia es importante, dependiendo de la potencia de la máquina (al usar mas "cores" el cuello de botella puede estar en memoria o el disco), la base de conocimientos, etc.
En la medida que se realicen las pruebas se publicará más información al respecto.
Se están desarrollando otros cambios importantes en el proceso de build que también redundarán en una mejor performance en el mismo.
¿Cuantos especificadores y generadores realmente se ejecutan?
Lo que se configura en las opciones del IDE son "hasta cuantos se ejecutan a la vez", luego depende de la cantidad de cores, de la cantidad de objetos y otros parámetros, la cantidad de instancias que efectivamente se ejecutan.
¿Afecta la performance del IDE?
En principio no porque el IDE ejecuta en su propio "core", aunque obviamente además del "core" estos procesos consumen memoria y disco, con lo cual puede darse "competencia" con el IDE en ese sentido.
¿Qué proceso MSBuild corresponde a generación y qué proceso a especificación?
Eso se puede ver en la command line del propio "task manager", para verlo hay que ir al tab "details" y poner visible esa columna:
No hay comentarios:
Publicar un comentario