Históricamente, el criterio más importante en la compilación de código fuente ha sido la eficiencia del ejecutable obtenido, buscando una optimización temporal (reducir el tiempo de ejecución). Otro criterio importante ha sido la optimización espacial (ya sea reduciendo la cantidad de memoria que ocupa el programa al ejecutarse o el tamaño del propio programa en sí mismo). Con el auge de los dispositivos portátiles, la optimización energética también puede ser muy importante: el consumo energético de un programa es crucial de cara a la autonomía de la batería. Este proyecto parte de una plataforma desarrollada en anteriores proyectos finales de carrera que obtiene muestras del consumo energético de un programa. Esto permite saber los datos de consumo energético del programa ejecutado a través de la plataforma, pero tiene una limitación: es imposible saber con qué parte del programa está relacionada cada muestra de consumo obtenido. Para superar esta limitación, se ha desarrollado un proceso por el cual se obtiene la caracterización temporal y energética de dicho programa a nivel de función. Al finalizar el proceso se obtendrá el consumo energético y temporal de las principales funciones del programa, pudiéndose asociar las variaciones de consumo energético a las funciones responsables de dichas variaciones. Para conseguir estos resultados, se ha desarrollado un mecanismo de instrumentación con el que poder obtener los datos temporales del programa minimizando la sobrecarga. Dichos datos son los instantes en los comienza y termina cada función instrumentada. Así, se puede saber en cada momento qué función está siendo ejecutada (y es la responsable del consumo energético). En este documento se describirá detalladamente el proceso diseñado, que puede ser aplicado en el futuro a otros programas de una manera sencilla y automatizada, obteniendo resultados que podrán profundizar tanto como la plataforma utilizada sea capaz