Publication:
Herramienta de perfilado para código de bytes de Java

Research Projects
Organizational Units
Journal Issue
Abstract
En este trabajo hemos implementado una herramienta para hacer “profiling” de programas escritos en código de bytes de Java, es decir, para contabilizar el número de recursos consumidos durante la ejecución de un programa. Los recursos que consideramos son: el número de instrucciones bytecode ejecutadas, el número de llamadas a un determinado método y el número de objetos creados (sin tener el cuenta el recolector de basura). La herramienta o profiler recibe como entrada un fichero “.class” que contiene el código compilado de un programa Java. Junto con este fichero se debe especificar el nombre del método sobre el cual queremos hacer “profiling” y pasarle al interprete el valor concreto de los parámetros de entrada que se quieren utilizar para la ejecución. Una vez fijado el método y sus argumentos, el siguiente paso consiste en determinar qué recursos (de los ofrecidos por el sistema) se quieren medir. Con estos datos de entrada, en una primera fase el profiler transforma el “.class” a una representación intermedia denominada RBR (“Rule-Based recursive Representation). La RBR es un conjunto de reglas recursivas que contienen la información suficiente para poder simular, a partir de ellas, la ejecución del programa tal cual lo haría la máquina virtual de Java. Para hacer el proceso de profiling más cómodo y sencillo para el usuario, hemos desarrollado una interfaz web en el lenguaje PHP que permite utilizar nuestro sistema de una manera muy intuitiva. [ABSTRACT] In this work we have implemented a tool which allows to do profiling of Java bytecode programs, i.e., to count the number of resources required by the execution of a program. The resources of interest are: the number of executed bytecode instructions, the number of calls to a concrete method and the number of created objects without considering the garbage collector. The profiler receives as input a “.class” file containing the compiled code of a Java program together with the name of the method for which the profiling will be done. Since we need to simulate the execution of the method at hand, the user must provide also the input arguments for the method. With this information, the profiler transforms the “.class” into an intermediate Ruled-based recursive Representation (RBR for short). The RBR is a set of recursive rules containing all the information required to execute the program as done by the Java Virtual Machine. Furthermore, the profiler also supports a Web interface, developed in the language PHP, which allows the use of the system in a friendly way.
Description
Proyecto de Sistemas Informáticos (Facultad de Informática, Curso 2009-2010)
Keywords
Citation