A method and system for detecting memory leaks in an object-oriented
environment during real-time trace processing is provided. During the
profiling of a program executing in a data processing system, a profiler
processes events caused by the execution of the program, and the profiler
maintains a profile data structure containing execution-related metrics
for the program. The execution-related metrics may include object
allocation and deallocation metrics that are associated with object
processing initiated on behalf of an executing method. An object allocator
allocates objects during the execution of the program and modifies object
allocation metrics in the profile data structure. Object metrics are
stored in a particular location and a pointer to that location is stored
in a hash table associated with the object's ID. In another embodiment the
pointer to the location is stored in a shadow heap in the same relative
position as the position of the object in the heap. The object allocation
metrics and the object deallocation metrics may be compared to identify
memory leaks.
Un método y un sistema para detectar los escapes de la memoria en un ambiente orientado al objeto durante el proceso en tiempo real del rastro se proporciona. Durante perfilar de un programa que se ejecuta en un sistema de proceso de datos, los acontecimientos de procesos de un profiler causados por la ejecución del programa, y el profiler mantiene una estructura de datos del perfil que contiene la métrica ejecucio'n-relacionada para el programa. La métrica ejecucio'n-relacionada puede incluir las métricas de la asignación y de la desasignación del objeto que se asocian al proceso del objeto iniciado a nombre de un método el ejecutarse. Un allocator del objeto asigna objetos durante la ejecución del programa y modifica métrica de la asignación del objeto en la estructura de datos del perfil. Las métricas del objeto se almacenan en una localización particular y un indicador a esa localización se almacena en una tabla del picadillo asociada a la identificación del objeto. En otra encarnación el indicador a la localización se almacena en un montón de la sombra en la misma posición relativa que la posición del objeto en el montón. La métrica de la asignación del objeto y la métrica de la desasignación del objeto se pueden comparar para identificar los escapes de la memoria.