Xojo, Perfilar código y mejorar rendimiento de apps

Crear una aplicación es un proceso laborioso en el que no sólo has de plasmar como realidad aquello que imaginas, sino que además has de hacerlo sin fallos (bugs) y también de modo que procure el máximo rendimiento posible que redunde, por tanto, en la mejor experiencia de uso por parte de los usuarios del producto final.

Y como ninguna aplicación está libre de bugs (tanto los notorios como los no tan notorios, pero que ahí están), Xojo pone a disposición de los usuarios un completo conjunto de capacidades dirigidas a lidiar con ello. Sin duda alguna, el depurador (Debugger) es la cara más visible de dicho conjunto de herramientas pues es el que ofrece las capacidades para trazar el funcionamiento de los métodos y eventos de nuestras aplicaciones. Pero otra herramienta que pasa más desapercibida es la que comienza por el propio editor de código: el autocompletado de texto para la signatura de los métodos, propiedades, clases, objetos y otras entidades, así como el tipado estático son grandes ayudas que, evitan una buena cantidad de desastres posteriormente en tiempo de ejecución.

Ahora bien, si en la creación de cualquiera de nuestras aplicaciones utilizamos seguramente el depurador de forma continuada (ya se sabe que forma parte de todo buen ciclo de desarrollo), lo que no hemos de caer es en la optimización prematura del código. Ya lo decía Donald Knuth: “La optimización prematura es, en programación, la raíz de todos los males”.

Es decir, se trata de procurar la mejora del rendimiento en el código de nuestras aplicaciones sólo cuando sabemos a ciencia cierta cuál es el rendimiento actual. De esta forma podremos identificar y localizar correctamente donde se producen los cuellos de botella, e incluso también las interacciones que se producen entre objetos que pueden no ser evidentes a simple vista en la ejecución normal de las aplicaciones o bien mediante el depurador.

Precisamente es para este tipo de funciones para las que Xojo incorpora la característica de Perfilador de Código (Profiler), y que podemos activar o desactivar a voluntad mediante el menú Project > Profile Code. Cuando está activo y ejecutamos la aplicación desde el IDE de Xojo, se irá recolectando en segundo plano información sobre el comportamiento (rendimiento) de nuestra aplicación: cuantas llamadas se producen en un evento y/o método determinado, así como la cantidad total de tiempo invertido en cada uno de estos componentes de perfilado.

Salida producida por el Perfilador de Código de Xojo.

 

Una vez que se detiene la ejecución de la aplicación perfilada, el IDE de Xojo nos presentará el informe con el resultado obtenido, donde cabe la pena destacar el nivel de granularidad que proporciona en cuanto a la información. Es decir, podremos ir desplegando por ejemplo un evento para ver cuáles son las interacciones en cuanto a los métodos llamados como consecuencia de la acción, así como la cantidad de tiempo consumido por cada uno de ellos. ¡Observa que todos los tiempos se indican en milisegundos!, algo que has de tener en cuenta a la hora de considerar los posibles “cuellos de botella” o áreas a optimizar.

Adicionalmente, algo que tiene para mi mucho sentido es la capacidad que nos ofrece el IDE de Xojo para guardar dichos informes. Sólo hemos de seleccionarlos en el la columna izquierda del IDE, acceder al menú contextual y seleccionar la opción que nos permite guardar el resultado donde deseemos. De este modo siempre podremos comparar las diferentes salidas producidas por el perfilador para comprobar si hemos logrado avances… o la variación de rendimiento a la hora de introducir nuevas prestaciones o modificar las ya existentes.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *