06-11-2009

Reduciendo el tiempo de generación de Panagen

El equipo de desarrolladores de Panaworld creó un software propio mediante el lenguaje PHP. Este software tenía como finalidad la pre-generación de cientos de miles de páginas estáticas, para así reducir con ello el coste de servidores en tiempo de ejecución o producción.

Este software todavía estaba en fase beta. Estaba siendo utilizado para un producto secundario de la empresa. Se me encomendó la tarea de depurar y optimizar todo tipo de aspectos del código: Algoritmos utilizados, bucles innecesarios, consultas SQL...

Panagen, directorio raíz Directorio raíz de Panagen

Además de eliminar algunos bucles con consultas innecesarias que se podían hacer en una sola consulta, la mayor mejora de rendimiento la conseguí creando Índices de MySQL y adaptando las consultas para que así el engine pudiera utilizarlos.

Previo a la optimización, Panagen tardaba casi una hora en generar páginas estáticas de 8 sitios web diferentes, incluido también el tiempo de despliegue a producción. Después de la optimización esto tan solo tomaba 15 minutos.

Disclaimer: Este proyecto es privado. Significa que no soy el dueño del código y por tanto no puedo garantizar el visionado libre del mismo, solo algunas imágenes a modo demostración con permiso del dueño. Sin embargo, si fuera necesario en un momento dado (como en una entrevista laboral) podría dar acceso a un repositorio privado para poderlo visualizar.
  • php
  • mysql
  • regexp
  • web-development
  • private-project
  • company:panaworld