Mejoras de rendimiento en Xojo Web

A continuación encontrarás traducida al castellano la entrada de blog escrita por Ricardo Cruz y publicada originalmente en el Blog de Xojo.

La última gran revisión de 2023 incluye una gran cantidad de mejoras de rendimiento en todas partes. El IDE es más rápido gracias a ellos. En este artículo quiero detallar aquellos dirigidos a la plataforma Xojo Web.

Respuestas de HandleURL más rápidas

Con Xojo Web puedes crear una API que puedan utilizar tus aplicaciones Mobile o Desktop. Simplemente con actualizar a Xojo 2023r4 tus servicios web se beneficiarán de unas respuestas mucho más rápidas, así como la capacidad de gestionar una mayor cantidad de peticiones por segundo.

Si comparamos diferentes versiones de Xojo, hemos creado algunas baterías de pruebas utilizando Xojo Web 1 (con Xojo 2019r3.2) y algunas versiones de Xojo Web 2: 2023r3.1 y la última, 2023r4.

Estos son los resultados de texto plano:

Y la misma prueba pero esta vez devolviendo una cadena generada por JSONItem:

Xojo 2023r4 es capaz de servir en torno a 20x más peticiones por segundo en comparación con Web 1, y en torno a 4x más en comparación con 2023r3.1; y gracias al reducido tiempo de latencia tu API devolverá los contenidos mucho más rápido.

Transferencias más rápidas en Windows y Linux

Relacionado con el rendimiento, hemos encontrado que las aplicaciones desplegadas en Windows y Linux estaban sirviendo los archivos de gran tamaño de un modo mucho más lento en comparación con aquellas desplegadas en servidores macOS.

William mejoró el código a bajo nivel de los sockets en dichas plataformas, permitiendo servir archivos de gran tamaño a una velocidad mucho mayor. Durante mis pruebas he visto un aumento de 10x en las velocidades de transferencia.

¡Pero esto no afecta sólo a la plataforma Web! Si estás utilizando un ServerSocket con las clases TCPSocket, entonces tus aplicaciones de Consola y Desktop también se beneficiarán de las mejoras realizadas en la velocidad de transferencia.

Control de cache para contenidos estáticos

En esta versión también hemos mejorado como interactúa el Framework con el navegador. Cuando tus usuarios visitan tu aplicación web por primera vez, esta almacenará todos los archivos JavaScript y CSS requeridos.

Esto ya era así en versiones anteriores, pero con una sutil diferencia. A partir de ahora, el navegador no tendrá que comprobar con el servidor si un archivo ha cambiado desde la última visita. Esto se traduce en unos tiempos de carga más rápidos para tus usuarios, y una menor carga del servidor para ti, dado que el servidor ya no tendrá que manejar todas estas peticiones.

Tiempo de compilación mejorado

En esta release, Xojo Web compilará tus proyectos unos cuantos segundos más rápido. La primera vez que compiles tu proyecto, cacheará el resultado de algunos procesos que sólo cambian entre versiones de Xojo.

Esta es una comparación entre 2023r3.1 y 2023r4, ejecutando una sesión de depuración correspondiente a un proyecto vacío:

Esto es en torno a 3-4 segundos más rápido cada vez que se compila el proyecto.

Mejoras en los Eventos

Algunos controles web estaban enviando información desde el navegador al servidor con mayor frecuencia de la necesaria. Por ejemplo, el evento de WebContainer.Scrolled se enviaba por cada pixel de desplazamiento, causando así una carga innecesaria en el lado del servidor.

Hemos revisado los siguientes controles:

  • WebCombobox
  • WebContainer
  • WebSearchField
  • WebTextArea
  • WebTextField
  • WebUploader

Nueva opción experimental

WebSession dispone de una nueva opción en fase experimental y que está desactivada por omisión: “Send Events in Batches”

Cuando se activa, hará que nuestro framework JavaScript agrupe diferentes notificaciones de evento en una única petición. Los proyectos que contengan diseños complejos y que muestren u oculten varios controles a la vez pueden verse beneficiados con unas GUI más ágiles.

Como efecto colateral, también se asegurará de que los eventos lleguen al servidor en el orden correcto. Pensemos en una pantalla de login donde el usuario tiene un campo de email, un password y un botón “Login” con el ajuste “Default” activado (para permitir que el usuario lance el evento Pressed mediante la pulsación de la tecla Retorno).

Cuando se envían los eventos en peticiones distintas, debido a las latencias de la red, el evento WebButton.Pressed podría llegar al servidor antes de que lo hiciese el evento WebTextField.TextChanged.

Nos encantaría conocer tu experiencia cuando actives esta opción experimental. Si encuentras algún problema, por favor repórtalo.

En Conclusión

Como siempre, si bien Xojo 2023r4 incorpora una buena cantidad de mejoras de rendimiento también incluye correcciones de errores y solicitudes de nuevas características. Quiero agradecer nuevamente a todos el tiempo utilizado en la creación de Informes de Bugs y Solicitudes de Nuevas Características… así como en probar las versiones beta!

¡Estamos deseando ver lo que creas con Xojo!

Deja un comentario

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