Horizontal profiling: A sampling technique to identify performance regressions
Tesis
Publication date
2016Metadata
Show full item record
Cómo citar
Bergel, Alexandre
Cómo citar
Horizontal profiling: A sampling technique to identify performance regressions
Author
Professor Advisor
Abstract
Los cambios continuos en el código fuente de un programa pueden inadvertidamente introducir una regresión de rendimiento en tiempo de ejecución. Dichas regresiones se refieren a situaciones donde el rendimiento de un programa se degrada en comparación de versiones anteriores del mismo, aunque la nueva versión funcione correctamente. Ejecutar puntos de referencia en cada versión de un programa es una técnica tradicional utilizada para identificar regresiones en etapas tempranas. A pesar de ser efectiva, esta técnica exhaustiva es difícil de llevar a cabo en la práctica, principalmente por la alta sobrecarga que esta actividad demanda.
En esta tesis, realizamos un estudio empírico sobre una variedad de programas, con el fin de evaluar cómo el rendimiento de un programa evoluciona en el tiempo, a medida que es modificado. Guiados por este estudio, proponemos Horizontal Profiling, una técnica de muestreo para inferir si una nueva versión de un programa introduce una variación de rendimiento, usando información de la ejecución de versiones anteriores. El objetivo de Horizontal Profiling es reducir la sobrecarga que requiere monitorear el rendimiento de cada versión, ejecutando los puntos de referencia solo en las versiones que contengan cambios costosos de código fuente.
Presentamos una evaluación en la cual aplicamos Horizontal Profiling para identificar regresiones de rendimiento en un número de programas escritos en en el lenguaje de programación Pharo. En base a las aplicaciones que analizamos, encontramos que Horizontal Profiling es capaz de detectar más del 80% de las regresiones de rendimiento, ejecutando los puntos de referencia en menos del 20% de las versiones. Adicionalmente, describimos los patrones identificados durante nuestro estudio empírico, y detallamos cómo abordamos los numerosos desafíos que enfrentamos para completar nuestros experimentos.
General note
Doctor en Ciencias, Mención Computación
Patrocinador
Este trabajo ha sido parcialmente financiado por CONICYT a través de la beca CONICYT-PCHA/Doctorado Nacional para extranjeros/2013-63130199, OBJECT PROFILE y LAM RESEARCH
Identifier
URI: https://repositorio.uchile.cl/handle/2250/143666
Collections
The following license files are associated with this item: