Ir al contenido principal

Mejoras de performance en el U2 del IDE de la X

En el U2 de GeneXus X se incluyeron varias mejoras, algunas especificamente orientadas a mejorar la performance del IDE. Entre ellas se cambió el modo en el cual se carga el Winte y los generadores. En lugar de ser cargado cada vez, se deja residente en memoria (un demonio) de modo que la próxima vez que se especifique/genere un objeto o grupo de objetos, dicho proceso sea mucho más rápido.



Para mí es un poco difícil (no imposible) hacer mediciones "científicas" sobre este punto porque no se trata de un build all o rebuild all o tareas de msbuilds que se puedan marcar con "timestamp" fácilmente sino es la propia utilización del IDE y la "sensación" más que una medición exacta.

Mi sensación entonces es que realmente mucho más "ágil" el proceso de edición-especificación-prueba-edición... que en sus versiones anterior. Como dice un amigo: "es mucho más fácil hacer eficiente algo que es eficaz que hacer eficaz algo que es eficiente", en realidad lo dice más "criollo": "es más fácil hacer andar rápido algo que anda bien que hacer andar bien algo que anda rápido"

Obviamente esto  de los demonios en memoria consume más de la misma, tampoco tengo mediciones "cientificas" pero aparecen como MSBuilds consumiendo entre 80 y 200 megas de memoria. Como siempre, dependerá de qué máquina tengo, si el SQL Server está local o en un Server, cómo tengo configurado ese SQL Server (memoria limitada o no), etc. Para quienes tengan problemas con la memoria utilizada, pueden volver al esquema anterior (tools/options/build y ahi tienen "close specifier" y "close generator")

Tip

Para finalizar un tip de algo disponible a partir del U2 también, GeneXus se puede ejecutar con la opción "/MeasureCommandTime" es decir algo como:

"c:\GeneXus\genexus.exe" /MeasureCommandTime

si se ejecuta de ese modo, entonces en la ventana de output (general) aparecerán mensajes del estilo:

---> Command: RebuildAll - Elapsed time: 00:00:00.6212445
---> Command: AfterBuildCommandWrapper - Elapsed time: 00:01:54.0176120

Esto en buen romance significa que demoró 1:54 minutos en hacer un rebuild de una KB que tengo (es chiquita, 30 objetos).

Del mismo modo aparecen muchas más operaciones, por ejemplo, al salvar un objeto dice:

---> Command: Save - Elapsed time: 00:00:01.6181117

En fin, no soy un especialista, solo un simple usuario pero capaz el tip le puede servir a alguien en algún escenario.

Comentarios

Entradas más populares de este blog

Liberar una versión: el fin del principio

Quienes desarrollamos software buscamos afectar positivamente la vida de las personas a través de nuestras aplicaciones. Ese es nuestro objetivo final, ese es nuestro éxito. Quienes desarrollamos , que ayuda a nuestros colegas en esa misión, solo tenemos éxito cuando ellos tienen éxito, por eso solemos decir que cuando liberamos una versión es "el fin del principio". Es un escalón fundamental, pero solo el primero. Tuve el privilegio de formar parte del equipo de y de su pero a su vez no he podido dedicarle tanto tiempo   como quisiera, casi no he podido  , ni  he podido leer. El mundo siguió girando, hay  , hay que me perdí y . Casi de casualidad me enteré del encuentro del a partir del 16/marzo en Montevideo. En cualquier caso: ¡el esfuerzo valió la pena!. Ahora que está siendo liberada en el   , hay que celebrar porque aplica aquello de "release is a feature". Podría tirarme en mi casa y estrenar mi  con una buena peli o sino aprovechar ir al un poco má...

Abrir links con aplicaciones nativas y no el browser (deeplinking)

El problema que tengo con algunas aplicaciones Android/iOS es que cuando recibo un link por algún medio (mail, tweet, etc) al abrirlo me lo abre con el browser, en lugar de abrirlo con una aplicación nativa asociada a ese “contenido”. Por ejemplo, si recibo un link a un tweet espero que lo abra con alguna aplicación de twitter que tenga instalada y no con el browser. De modo análogo si recibo un mail con una nota de prensa de un medio X y tengo la aplicación de ese medio X instalada, espero que el link lo abra con la aplicación nativa y no con el browser. Lo mismo quisiera con mi aplicación de "banking" o cualquiera que tenga instalada y sepa manejar ese "contenido" (link). Los motivos son bastante obvios pero los resumo en: la experiencia de usuario es mucho mejor en la aplicación nativa que en el navegador. Parte importante del tema es que el mismo link sea válido tanto para ver el contenido en el browser como para verlo en la aplicación, porque como prove...

El miedo, ese asesino silencioso

Hace unas semanas compré por Mercado Libre un tejido de alambre (de esos electrosoldados que se usan para cercos, pérgolas, etc) para armar una pérgola en casa. Como me suele pasar: compré de más. Así que decidí vender el resto del alambre por el mismo medio (Mercado Libre). Lo publiqué un Miércoles a las 13:00 y 4 horas después recibo un aviso de Mercado Libre que lo había vendido. Perfecto! Incluso lo había puesto al mismo precio x metro que la compra original así que notable! Revisé la compra y me pagó mediante Mercado Pago usando una tarjeta VISA, en fin, todo normal. Un rato después del aviso me llaman de un teléfono fijo al celular un tal Juan Rodriguez que coincidía con el nombre del comprador que me había llegado. Capitulo 1: ¡para qué abrís la boca! No sé cómo decir esto de un modo "políticamente correcto" pero la manera de expresarse parecía de alguien que no tenía un gran nivel de educación. Demasiado "lunfardo" para hablar con alguien que no con...