Descripción del título

Thymeleaf.rb es una adaptación a Ruby de Thymeleaf, un motor de plantillas naturales en Java. La versión inicial de Thymeleaf.rb fue implementada en 2016 por Daniel Vázquez Brañas en su trabajo de fin de grado. Estaba centrada en implementar un motor funcional que expone una API que adaptara al ecosistema Ruby las funcionalidades de Thymeleaf sin tener en cuenta el rendimiento. Este proyecto se centra en optimizar el rendimiento de Thymeleaf.rb. Para ello se identifican los problemas que afectan al rendimiento del motor de plantillas: La utilización de un parser lento. Cada reevaluación de una plantilla supone un renderizado de la misma. No se reaprovecha ninguna de la estructuras, ni código generado. Se tratan de resolver estos problemas en sucesivas optimizaciones: Cambiar el parser por uno más rápido para resolver el problema del parser lento. Reevaluación de plantillas en cada renderizado. Se han realizado tres optimizaciones: _ Implementar una política de caché sobre plantillas parseadas. Se cachea y reaprovecha la estructura generada tras pasar la plantilla de entrada por el parser. _ Implementar una política de caché sobre fragmentos procesados. Se estudia si cachear fragmentos procesados con un determinado contexto, reutilizando HTML ya generado, optimiza el procesado de Thymeleaf. rb. _ Precompilado de plantillas. Este enfoque implica generar fragmentos de código Ruby ejecutables e independientes del contexto, llamados plantillas precompiladas, que se cachean. En el momento de la ejecución, se le pasa el contexto a la plantilla precompilada como argumento y se genera el HTML de salida. De esta manera, la plantilla se procesa una vez y se puede utilizar con variaciones del contexto. Tras cada optimización se recogen datos de velocidad y consumo de memoria del benchmark y se cuantifica la mejora que se produce. Palabras clave: benchmark, caché, consumo de memoria, contexto, ERB, fragmento, HTML, IPS, Oga, optimización, parser, plantilla, precompilado, Ruby
Monografía
monografia Rebiun21358609 https://catalogo.rebiun.org/rebiun/record/Rebiun21358609 180904s2018 espa 000 0 spa d BUDC García Aparicio, Jorge Mejora y optimización de Thymeleaf.rb, un motor de plantillas naturales en Ruby 2018 112 p. il. col + 1 disco (CD-ROM) 112 p. Traballos fin de grao (UDC. INF) Mención en Ingeniería del Software Curso 2017/2018 Trabajo fin de grado (Universidade da Coruña. Facultade de Informática. Ingeniería Informática) Trabajo fin de grado-Universidade da Coruña Thymeleaf.rb es una adaptación a Ruby de Thymeleaf, un motor de plantillas naturales en Java. La versión inicial de Thymeleaf.rb fue implementada en 2016 por Daniel Vázquez Brañas en su trabajo de fin de grado. Estaba centrada en implementar un motor funcional que expone una API que adaptara al ecosistema Ruby las funcionalidades de Thymeleaf sin tener en cuenta el rendimiento. Este proyecto se centra en optimizar el rendimiento de Thymeleaf.rb. Para ello se identifican los problemas que afectan al rendimiento del motor de plantillas: La utilización de un parser lento. Cada reevaluación de una plantilla supone un renderizado de la misma. No se reaprovecha ninguna de la estructuras, ni código generado. Se tratan de resolver estos problemas en sucesivas optimizaciones: Cambiar el parser por uno más rápido para resolver el problema del parser lento. Reevaluación de plantillas en cada renderizado. Se han realizado tres optimizaciones: _ Implementar una política de caché sobre plantillas parseadas. Se cachea y reaprovecha la estructura generada tras pasar la plantilla de entrada por el parser. _ Implementar una política de caché sobre fragmentos procesados. Se estudia si cachear fragmentos procesados con un determinado contexto, reutilizando HTML ya generado, optimiza el procesado de Thymeleaf. rb. _ Precompilado de plantillas. Este enfoque implica generar fragmentos de código Ruby ejecutables e independientes del contexto, llamados plantillas precompiladas, que se cachean. En el momento de la ejecución, se le pasa el contexto a la plantilla precompilada como argumento y se genera el HTML de salida. De esta manera, la plantilla se procesa una vez y se puede utilizar con variaciones del contexto. Tras cada optimización se recogen datos de velocidad y consumo de memoria del benchmark y se cuantifica la mejora que se produce. Palabras clave: benchmark, caché, consumo de memoria, contexto, ERB, fragmento, HTML, IPS, Oga, optimización, parser, plantilla, precompilado, Ruby Programas de ordenador libres -- Trabajos fin de grado Sitios Web -- Desarrollo -- Trabajos fin de grado Barral Precedo, David dir Bellas Permuy, Fernando Traballos fin de grao (UDC. INF). Enxeñaría Informática