System and method for providing trace information

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C702S179000, C702S186000, C707S793000, C710S056000

Reexamination Certificate

active

06338159

ABSTRACT:

TECHNICAL FIELD
The present invention relates to information processing systems and, more particularly, to software tools and methods for monitoring, modeling, and enhancing system performance.
BACKGROUND INFORMATION
To enhance system performance, it is helpful to know which modules within a system are responsible, either directly or indirectly, for the most significant consumption of the most critical system resources. Effective systems management depends on knowing how and when system resources are being used. Similarly, a developer hoping to improve system performance should focus his or her efforts on improving the resource consumption characteristics of the modules which consume the largest amount of critical resources.
Performance tools are used to examine the system in order to determine resource consumption as programs execute. For example, a performance tool may identify the most frequently executed modules and instructions in a system, or may identify those modules which allocate the largest amount of memory or perform the most I/O requests. Performance tools may be implemented in hardware or software. Software performance tools may be built into the system or added at a later point in time. Performance tools implemented in software are especially usefull in systems, such as personal computer systems, that do not contain many, if any, built-in hardware performance tools. Software tools take advantage of hardware performance tools and are instrumental in understanding what is happening at the level that an analyst or program developer can understand.
One type of prior art software performance tool, referred to as a trace tool, keeps track of particular sequences of instructions by logging certain events as they occur. For example, a trace tool may log every entry into and every exit from a module, subroutine, method, function, or system component. Typically, a time stamped record is produced for each such event. Pairs of records similar to entry-exit records are also used to trace execution of arbitrary code segments, to record acquiring and releasing locks, starting and completing I/O or data transmission, and for many other events of interest.
A developer or systems manager is typically presented with a “trace” of the results. The trace is often stored as a text file, such as the example trace, showing entries into and exits from modules, depicted in FIG.
1
. The trace in
FIG. 1
shows that module “C” is the first module entered. Module “C” calls module “A,” module “A” calls module “B,” and so on.
FIG. 1
depicts a very small piece of a larger trace. Typically, traces are many millions of entries long. Because loops are common in programs, trace files often contain patterns of events repeated many times. The typical text file trace output may be read by a developer or systems manager, and is adequate for gaining an understanding of very small time periods within the trace. However, a text file trace output is too cumbersome to use when attempting to analyze large scale behavior and patterns contained in a trace. Furthermore, the size of the trace is limited by the buffer space allocated to store the trace. Thus, a system may be traced for a limited, and often very short, period of time.
Consequently, it would be desirable to have a system and method for providing trace information to a developer or systems manager in a compact and highly efficient manner. It would also be desirable to provide the trace information in such a way as to facilitate understanding of the system's operation, and highlight opportunities for performance improvement.
SUMMARY OF THE INVENTION
Accordingly, the present invention is directed to a system, method, and computer readable medium for representing program event trace information in a way which is very compact and efficient, and yet supports a wide variety of queries regarding system performance. The tracing and reduction of the present invention may be dynamic, in which case information is obtained in real-time, as each event occurs, and is automatically reduced and added to the trace representation. Alternately, the tracing and reduction of the present invention may be static, in which case a trace text file or binary file is obtained from a trace buffer, and the reduction takes place using the trace file as input.
The trace information, whether obtained statically or dynamically, is represented as a tree of events. For example, the tree structure of the present invention may reflect the call stacks observed during a program's execution. A call stack is represented by one or more nodes in the tree, and statistics regarding the time spent in the various routines and call stacks is stored at each node.
The present invention may be used to present many types of trace information in a compact manner which supports performance queries. For example, rather than keeping statistics regarding time, tracing may be used to track the number of Java bytecodes executed in each method (i.e. routine) called. The tree structure of the present invention would then contain statistics regarding bytecodes executed. Tracing may also be used to track memory allocation and deallocation. An advantage of this invention is that it is not required to store a trace record for every memory allocation or deallocation, though such an approach is possible under the present invention.
An advantage of the present invention is that trace information is presented in a manner which is compact and efficient. Another advantage is that the tree structure of the present invention may be used to quickly and easily answer a variety of performance queries. A further advantage of the present invention is that it allows a system to be traced for long periods of time without losing useful performance information due to a limited buffer space. The use of dynamic tracing and reduction, along with dynamic pruning in some cases, is especially usefull in profiling the performance characteristics of long running programs. By using dynamic tracing and reduction (and perhaps dynamic pruning), an accurate and informative performance profile may be obtained for a long running program.


REFERENCES:
patent: 5193180 (1993-03-01), Hastings
patent: 5321834 (1994-06-01), Weiser et al.
patent: 5335344 (1994-08-01), Hastings
patent: 5539907 (1996-07-01), Srivastava et al.
patent: 5649085 (1997-07-01), Lehr
patent: 5684945 (1997-11-01), Chen et al.
patent: 5689712 (1997-11-01), Heisch
patent: 5732273 (1998-03-01), Srivastava et al.
patent: 5737609 (1998-04-01), Reed et al.
patent: 5748878 (1998-05-01), Rees et al.
patent: 5768500 (1998-06-01), Agrawal et al.
patent: 5970439 (1999-10-01), Levine et al.
patent: 5987598 (1999-11-01), Levine et al.
patent: 6002872 (1999-12-01), Alexander, III et al.
patent: 6055492 (2000-04-01), Alexander, III et al.
patent: 6230313 (2001-05-01), Callahan, II et al.
IBM Technical Disclosure Bulletin, “Process for Real Time, Trace Driven Performance Monitors,” vol. No. 34, Issue No. 5, Oct. 1, 1991, pp. 415-417.*
Morrisett et al.,Abstract Models of Memory Management, sponsored in part by the Advanced Research Projects Agency (ARPA), CSTO, under the title “The Fox Project: Advanced Development of Systems Software,” 1995, pp. 66-77.
Robert J. Hall et al., “Call Path Profiling of Monotonic Program Resources in UNIX”, 1993 Summer USENIX, Jun. 21-25, 1993, Cincinnati, OH, 4 pp.
Glenn Ammons et al., “Exploiting Hardware Performance Counters with Flow and Context Sensitive Profiling”, ACM, 1997, Las Vegas, NV, pp. 85-95.
Thomas Ball et al., “Optimally Profiling and Tracing Programs”, ACM Transactions on Programming Languages and Systems, vol. 16, No. 4, , Jul. 1994, 1319-1360.
IBM Technical Disclosure Bulletin, “Implementation of High Performance Subtype Object Migration”, vol. 38 No. 11, Nov. 1995, pp. 311-314.

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

System and method for providing trace information does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and method for providing trace information, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for providing trace information will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2856684

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