Citation
Tardío Tomeno, Cristina
(2019).
JavAccountant: contabilizando la actividad de programas Java.
Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S. de Ingenieros Informáticos (UPM), Madrid, España.
Abstract
Actualmente existen diversas herramientas para analizar y monitorizar el rendimiento de los programas. En su mayoría se basan en el estudio de la evolución de del uso de la CPU o de la memoria o del tiempo de ejecución. El objetivo principal de este trabajo consiste en la implementación de una herramienta que permita al programador obtener información sobre diferentes propiedades del código como el número total de instrucciones ejecutadas, las instrucciones ejecutadas por método, las veces que un método es invocado o las veces que un método llama a otro. Estos aspectos de la ejecución de un programa pueden ser muy relevantes para depurar programas o mejorar su rendimiento. Para ello se ha desarrollado un plugin en eclipse que se encarga, mediante la instrumentación del código compilado, de calcular las medidas mencionadas anteriormente. Esta instrumentación se realiza inyectando instrucciones Bytecode entre las instrucciones originales. Llamadas a un método de la clase que se encargaran de manejar la información. El mapeo y la modificación de las clases ha sido posible gracias a la librería ASM [7] que habilita una API para ello. La integración en eclipse facilita al usuario poder ejecutar el análisis en cualquier momento del desarrollo.---ABSTRACT---There are currently several tools for analysing and monitoring program performances. Most of them are based on the study of the CPU usage or memory evolution or in the execution time. The main objective of this work consists in developing a tool which allows the programmer getting information about different code properties such as the whole of executed instructions, the executed instructions per method, how many times a method is called or how many times one method called another one. This kind of feature of a program execution might be relevant for debugging programs or improve its performance. To this end an Eclipse plugin has been developed, through the instrumentation of compiled code, which is in charge of calculate the mentioned measures. This instrumentation is made by introducing Bytecode instructions among the original ones. Invoking a method of a class in charge of manage the information. Mapping and modification of classes has been possible thanks for the API from ASM [7] framework. Merging this tool with Eclipse makes easier to the user the execution of the analysis at any time of the development.