Process and system for merging trace data for primarily...

Data processing: software development – installation – and managem – Software program development tool – Testing or debugging

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S124000, C717S127000, C717S129000, C717S130000

Reexamination Certificate

active

06553564

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates to an improved data processing system and, in particular, to a method and apparatus for optimizing performance in a data processing system. Still more particularly, the present invention provides a method and apparatus for a software program development tool for enhancing performance of a software program through software profiling.
2. Description of Related Art
In analyzing and enhancing performance of a data processing system and the applications executing within the data processing system, it is helpful to know which software modules within a data processing system are using system resources. Effective management and enhancement of data processing systems requires knowing how and when various system resources are being used. Performance tools are used to monitor and examine a data processing system to determine resource consumption as various software applications are executing within the data processing system. For example, a performance tool may identify the most frequently executed modules and instructions in a data processing system, or may identify those modules which allocate the largest amount of memory or perform the most I/O requests. Hardware performance tools may be built into the system or added at a later point in time. Software performance tools also are useful in data processing systems, such as personal computer systems, which typically do not contain many, if any, built-in hardware performance tools.
One known software performance tool is a trace tool, which keeps track of particular sequences of instructions by logging certain events as they occur, so-called event-based profiling. For example, a trace tool may log every entry into, and every exit from, a module, subroutine, method, function, or system component. Alternately, a trace tool may log the requester and the amounts of memory allocated for each memory allocation request. Typically, a time stamped record is produced for each such event. Pairs of records similar to entry-exit records also are used to trace execution of arbitrary code segments, to record requesting and releasing locks, starting and completing I/O or data transmission, and for many other events of interest.
Another tool used involves program sampling to identify certain locations in programs in which the programs appear to spend large amounts of time, such as program hot spots. This technique is based on the idea of interrupting the application or data processing system execution at regular intervals, so-called sample-based profiling. In order to improve performance of code generated by various families of computers, it is often necessary to determine where time is being spent by the processor in executing code, such efforts being commonly known in the computer processing arts as locating “hot spots.” Ideally, one would like to isolate such hot spots at the instruction and/or source line of code level in order to focus attention on areas which might benefit most from improvements to the code. At each interruption, the program counter of the currently executing thread, a process that is part of a larger process or program, is recorded. Typically, at post-processing time, these tools capture values that are resolved against a load map and symbol table information for the data processing system, and a profile of where the time is being spent is obtained from this analysis.
For example, isolating such hot spots to the instruction level permits compiler writers to find significant areas of suboptimal code generation, at which they may thus focus their efforts to improve code generation efficiency. Another potential use of instruction level detail is to provide guidance to the designer of future systems. Such designers employ profiling tools to find characteristic code sequences and/or single instructions that require optimization for the available software for a given type of hardware.
Event-based profiling has limitations. For example, event-base profiling is expensive in terms of performance (an event per entry and per exit), which can and often does perturb the resulting view of performance. Additionally, this technique is not always available because it requires the static or dynamic insertion of entry/exit events into the code. This insertion of events is sometimes not possible or is often difficult. For example, if source code is unavailable for the to-be-instrument code, event-based profiling may not be feasible. However, it is possible to instrument an interpreter of the source code to obtain event-base profiling information without changing the source code.
On the other hand, sample-base profiling provides only a “flat view” of system performance but does provide the benefits of reduced cost and reduced dependence on hooking-capability.
Further, sample-based techniques do not identify where the time is spent in many small and seemingly unrelated functions or in situations in which no clear hot spot is apparent. Without an understanding of the program structure, it is not clear with a “flat” profile how to determine where the performance improvements can be obtained.
Therefore, it would be advantageous to provide both event-based and sample-based profiling of an application within the same time period. It would be particularly advantageous to provide the ability to enable and disable profiling of selected portions of a data processing system and to combine the output from different types of profiling into a single merged presentation.
SUMMARY OF THE INVENTION
The present invention provides a process and system for profiling code executing on a data processing system. Event-based trace data is recorded in response to selected events, and the event-based trace data includes an indication of which code is being interrupted. The trace data may be processed to identify a thread or method that was executing during the event. A periodically occurring event is also detected, and a stack associated with the profiled code is identified in response to detection of the periodically occurring event, such as a timer interrupt. The stack is examined to identify each routine that is currently executing during the periodically occurring event.


REFERENCES:
patent: 5802585 (1998-09-01), Scales et al.
patent: 5828883 (1998-10-01), Hall
patent: 5889999 (1999-03-01), Breternitz, Jr. et al.
patent: 5909578 (1999-06-01), Buzbee
patent: 6077311 (2000-06-01), Lichtenstein et al.
patent: 6158024 (2000-12-01), Mandal
patent: 6189141 (2001-02-01), Benitez et al.
patent: 6189142 (2001-02-01), Johnston et al.
patent: 6202199 (2001-03-01), Wygodny et al.
patent: 6226787 (2001-05-01), Serra et al.
patent: 6247170 (2001-06-01), Giroux
patent: 6263491 (2001-07-01), Hunt
patent: 6282701 (2001-08-01), Wygodny et al.
patent: 6295644 (2001-09-01), Hsu et al.
Title: Efficient Path Profiling, author: Ball et al, ACM, 1996.*
Title: Stack Trace Exceptions in Win32, author Carlo Pescio, Jun. 1998, Proquest.*
Title: Data strictire amd Insertion Algorithm for Representing Asynchronous occurrence for visualization by trace visualization tools using gnat charts with occurrence hierarchies, IBMTecbul Jul 1993.*
Hall et al.; Call Path Profiling Of Monotonic Program Resources in UNIX; Jun. 25, 1993; pp 1-13.
Ammous et al.; Exploring Hardware Performance Counters With Flow And Context Sensitive Profiling; pp 85-96.
Bell et al.; Optimally Profiling and Tracing Programs; Jul. 1994; pp 1319-1360.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Process and system for merging trace data for primarily... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Process and system for merging trace data for primarily..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Process and system for merging trace data for primarily... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3056674

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.