Home | Links | Contact Us | More About Intellectual Property | Bookmark
Search patents:
Home Fault Detection Method-and-apparatus-for-profiling-indirect-procedure-calls-in-a-computer-program

 Method and apparatus for storing templates in a component system
The present invention provides a component system in which a number of base applications, i.e. ...


 Method and apparatus for executing tasks by following a linked list of memory packets
OF THE EMBODIMENT FIG. 1 is a high level block diagram of a task flow computing machine 10. M...


 Optical fiber bus controller
FIG. 1 illustrates system 100 which implements the invention. System 100 comprises a number of ...


 Low-latency real-time dispatching in general purpose multiprocessor systems
The present invention provides a method of real-time dispatching in a general purpose ...


 dbX: a persistent programming language model
The persistent programming language model described herein solves the problem of seamlessly ...


 Data processor and data processing system
The inventor has studied for speeding up of matrix operation and inner product operation employing ...


 Tape recorder having cassette loading apparatus
Accordingly, it is an object of this invention to provide a tape recorder having a cassette loading ...


 Laser capable of producing a frequency standard
I claim: 1. A laser capable of producing a stable frequency standard comprising means for ...


 Logic element
It is the object of the invention to provide a gate circuit of the type above described which ...


 Tunable alkali metallic vapor laser
We claim: 1. A tunable pulse laser system comprising: (a) a resonant optical cavity comprising heat ...


 Method and apparatus for profiling indirect procedure calls in a computer program

Details
Inventors: Hanson, Scott Patrick; Schmidt, William Jon;
Assignee: International Business Machines Corporation (Armonk, NY)
Primary Examiner: Trammell; James P.
Assistant Examiner: Nguyen; Cuong H.
Attorney, Agent or Firm: Martin & Associates, L.L.C., Martin; Derek P.

An apparatus and method provide more complete profile data by instrumenting indirect procedure calls in a computer program. Indirect procedure calls have a number of counters allocated in a table at each indirect call site. The counters are divided into counters in a low volatility area and counters in a high volatility area. The counters in the high volatility area have a pointer that identifies the next procedure to be replaced. As the instrumented code executes, a call to a procedure that is in the table increments the count of the counter in the table. A call to a procedure not in the table is placed in the high volatility area, displacing the procedure at the pointer, and moves the pointer to a new location. The displaced procedure is either promoted to the low volatility area, or is discarded. If promoted, the procedure that it displaces in the low volatility area is demoted to the high volatility area, displacing a procedure there at the pointer (and moving the pointer to a new location). This process continues until a displaced high volatility procedure is discarded.

DETAILED DESCRIPTION As discussed in the Background section, the generation of profile data for direct procedure calls is relatively straightforward.
However, the generation of profile data for indirect procedure calls is problematic, and presents challenges that have not been successfully overcome in the prior art.
The present invention provides an apparatus and method for collecting profile data at indirect call sites within a computer program.
By taking into account profiling data at indirect call sites, the ordering of procedures in a computer program will be improved, thereby enhancing the performance of the computer program.
Referring to FIG.
1, a computer system 100 in accordance with the present invention is an enhanced IBM AS/400 mid-range computer system.
However, those skilled in the art will appreciate that the mechanisms and apparatus of the present invention apply equally to any computer system, regardless of whether the computer system is a complicated multi-user computing apparatus or a single user device such as a personal computer or workstation.
Computer system 100 suitably comprises a processor 110, main memory 120, a memory controller 130, an auxiliary storage interface 140, and a terminal interface 150, all of which are interconnected via a system bus 160.
Note that various modifications, additions, or deletions may be made to the computer system 100 illustrated in FIG.
1 within the scope of the present invention such as the addition of cache memory or other peripheral devices; FIG.
1 is presented to simply illustrate some of the salient features of computer system 100.
Processor 110 performs computation and control functions of computer system 100, and comprises a suitable central processing unit.
Processor 110 may comprise a single integrated circuit, such as a microprocessor, or may comprise any suitable number of integrated circuit devices and/or circuit boards working in cooperation to accomplish the functions of a processor.
Processor 110 suitably executes a computer program 122 within main memory 120



Related patents
  Profile driven optimization of frequently executed paths with inlining of code fragment (one or more lines of code from a child procedure to a parent procedure)
Unfortunately, traditional inlining is often unable to substantially reduce the procedure call overhead of a program where to do so would be highly advantageous. In ...
  Method of, system for, and computer program product for providing efficient utilization of memory hierarchy through code restructuring
The invention disclosed herein comprises a method of, a system for, and an article of manufacture for providing code restructuring based on profiling information and ...
  Software reconfiguration engine
The present invention relates generally to computer system software development and maintenance. More particularly, the invention relates to a reconfiguration system for ...
  Automated validation and verification of computer software
The present invention discloses a method and apparatus for automatic validation and verification of computer software. The software to be tested is first retrieved from ...
  System for generating test data
A system for generating test data that overcomes these and other problems has a data structure definition system, a message creation system, and an execution system. The ...
  Diabetes management
According to a first aspect of the present invention there is provided a method of predicting the level of a glycosylated haemoglobin component in a patient's blood ...
  Method and apparatus for code translation optimization
OF PREFERRED EMBODIMENTS Generally, the present invention provides a method of optimizing software translation. Specifically, when a microprocessor accesses a block of ...
  Method and computer system for loading objects
To achieve the foregoing objectives, the present invention executes the following steps in a computer system loading an object-oriented program including a plurality of ...
  Graphical design processing apparatus for assessing and modifying design of components
It is therefore an object of the present invention to provide a graphic data processing apparatus which permits even an unskilled or unexperienced designer or production ...
  Developers tool for object-oriented programming
The present invention fulfills this need in the art by providing a software developer's tool to help write application programs for an object-oriented operating system ...

0.014

Archive: All patents - Links

Copyright (c)2006 Eipa-patents.org - All rights reserved