Processing events during profiling of an instrumented program

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

C717S131000

Reexamination Certificate

active

06728955

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. A trace tool may use more than one technique to provide trace information that indicates execution flows for an executing program. One technique keeps track of particular sequences of instructions by logging certain events as they occur, so-called event-based profiling technique. 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 of interest. Corresponding pairs of records similar to entry-exit records also are used to trace execution of arbitrary code segments, starting and completing I/O or data transmission, and for many other events of interest.
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.
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 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.
Unwanted effects may be caused by the system to the information that the profiling processes are attempting to capture. Since most computer systems are interruptable, multi-tasking systems, the operating system may perform certain actions underneath the profiling processes, unbeknownst to the profiling processes. The most prevalent of these actions is a thread-switch. While a profiling process is attempting to capture information about the occurrence of an event within a particular thread, the system may perform a thread switch. Once the profiling process obtains the desired information for recording within a trace buffer, the information may have changed due to the thread switch, and the recorded information may not accurately reflect the desired information when the event occurred.
An important datum to be recorded about the occurrence of an event is its time of occurrence. However, there are situations during the analysis of a system in which it would be convenient to have a frame of reference which allows the correlation of events with multiple types of metrics in addition to time.
Therefore, it would be advantageous to provide a method and system for profiling multiple metrics, and it would be particularly advantageous to provide thread-relative metrics that are isolated from the effects caused by thread-switching so that the profiling processes may record multiple thread-relative metrics.
SUMMARY OF THE INVENTION
A method and system for maintaining and using a vector of metrics is provided. A user may specify a vector of metrics to be used while profiling a program. The vector of metrics may optionally be thread-relative. In response to a notification of an occurrence of the current event, a thread-relative elapsed metric is computed by: determining a current thread; retrieving a stored reference metric for the preceding event of the current thread; obtaining a current reference metric; and computing the thread-relative elapsed metric as a difference between the current reference metric and the stored reference metric. In order to prevent the generation of redundant metric information, the information associated with the vector of metrics may be placed into the trace records in several different space-saving formats.


REFERENCES:
patent: 4558413 (1985-12-01), Schmidt et al.
patent: 5295230 (1994-03-01), Kung
patent: 5321834 (1994-06-01), Weiser et al.
patent: 5465258 (1995-11-01), Adams
patent: 5481712 (1996-01-01), Silver et al.
patent: 5485616 (1996-01-01), Burke et al.
patent: 5493689 (1996-02-01), Waclawsky et al.
patent: 5506955 (1996-04-01), Chen et al.
patent: 5539907 (1996-07-01), Srivastava et al.
patent: 5553235 (1996-09-01), Chen et al.
patent: 5649085 (1997-07-01), Lehr
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: 5761477 (1998-06-01), Wahbe et al.
patent: 5768500 (1998-06-01), Agrawal et al.
patent: 5966537 (1999-10-01), Ravichandran
patent: 6016466 (2000-01-01), Guinther et al.
patent: 6090155 (2000-07-01), Donovan et al.
patent: 6092180 (2000-07-01), Anderson et al.
patent: 6148437 (2000-11-01), Shah et al.
patent: 6189141 (2001-02-01), Benitez et al.
patent: 6223339 (2001-04-01), Shah et al.
patent: 6269477 (2001-07-01), Fitzgerald et al.
patent: 6327699 (2001-12-01), Larus et al.
patent: 6341371 (2002-01-01), Tandri
IBM Computer Dictionary, 1994, pp. 729-730.*
“Shade: A Fast Instruction—Set Simulator for Execution Profiling” Bob Cinelill et al, ACM pp. 128-136, May 1994.*
“IBM Research Report DAISY Dynamic Compilation for 100% Architectural Compatibility”, K. Ebcioglu et al. IBM Research Division pp. 1-82, Aug. 1996.*
“Professional Tools User's Sourc profilier users Guide”, Microsoft visual CH, version 1.0, pp. 1-72, 1993.*
“Turbo profiler 2.0” user's Guide, Borland corporation pp. 1-226, 1991.*
“Trace-directed program restructuring for AIX executables”, R.R. Heisch, pp. 595-603, IBM J. Res Develop vol. 38, No. 5, Sep. 1994.*
“An Execution Profiler for modular programs”, S. Graham et al, Software Practice and Experience, vol. 13, 671-685, Mar. 1983.*
“Using profile Information to assist classic code optimizations”, Pohva P. Chang et al, Software Practice and Experienc, vol. 21, 1301-1321, Dec. 1991.*
“Interprocedural optimization Eliminating unnecessary recompilation”, M.Burke et al, ACM Transactions on Programming Lang VIS, pp. 367-399, No. 3, Jul. 1993.*
International Business Machines Corporation; Technical Disclosure Bulletin vol 38, No 11, Nov. 1995; Implementation of High Performance Subtype Object Migration.
International Business Machines Corporation; Technical Disclosure Bulletin vol 21, N

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

Processing events during profiling of an instrumented program does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Processing events during profiling of an instrumented program, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Processing events during profiling of an instrumented program will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3190140

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