← Back to Patent Explorer
US6049666A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for accurate profiling of computer programs

Assignee: Rational Software Corp
•
Filing: 1998-08-21
•
Granted: 2000-04-11
•
Expires: 2018-08-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An object code expansion profiler equips a program for execution profiling by preprocessing the object code files of the program so as to add profiling monitoring code to the beginning of all or substantially all functions. The preprocessing includes, for each function, the steps of grouping the function's instructions into basic blocks, counting the number of cycles required to execute the instructions of the basic block, and inserting special monitoring code with the basic block. The special monitoring code is executed each time the basic block is executed, and updates the profiling information to reflect the number of cycles required to execute the basic block. Special handling is provided for profiling calls to the Operating System (OS). The resultant profiling information is converted into a call graph image most useful for human users. For each arc in the graph connecting a calling-function/parent-node to a called-function/child node, the displayed arc image has a width logarithmically proportional to the self+descendants time for the called function.

Inventors

  • 👤 James Bennett
  • 👤 Mark Anderson
  • 👤 Choon Piaw Na
  • 👤 Reed Hastings

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 02:56
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3604; G06F11/3612; G06F11/30; G06F11/32; G06F11/323; G06F11/34; G06F11/3409; G06F11/3419; G06F11/3457; G06F11/3461; G06F11/3466; G06F2201/00; G06F2201/865; G06F2201/88

Claims Analysis

Total Claims: 45
Claim 1
Independent Claim 102 words
A method for profiling execution of a computer program including functions, comprising: collecting profiling data for the functions during execution of the computer program, the profiling data including self+descendants times for the functions; constructing a call graph of function calls for the computer program; pruning the call graph to remove arcs depicting a function call to a function that has a self+descendants time that is less than a pruning time filter value; and displaying a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically show the relative self+descendants times for the functions.
Claim 2
Independent Claim 102 words
A method for profiling execution of a computer program including functions, comprising: collecting profiling data for the functions during execution of the computer program, the profiling data including self+descendants times for the functions; constructing a call graph of function calls for the computer program; pruning the call graph to remove arcs depicting a function call to a function that has a self+descendants time that is less than a pruning time filter value; and displaying a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically show the relative self+descendants times for the functions.
Claim 3
Dependent Claim 41 words
The method of claim 1, wherein the pruning time filter value is automatically determined under computer control so that a predetermined number of functions of the computer program have self+descendants times equal to or greater than the pruning time filter value.
Claim 4
Dependent Claim 20 words
The method of claim 2, wherein the predetermined number of functions of the computer program is less than one hundred.
Claim 5
Dependent Claim 17 words
The method of claim 3, wherein the predetermined number of functions of the computer program is thirty.
Claim 6
Dependent Claim 35 words
The method of claim 1, wherein the graphical representations of the self+descendants times for the functions are the widths of the arcs such that the widths are proportional to the self+descendants times for the functions.
Claim 7
Dependent Claim 23 words
The method of claim 5, wherein the widths of the arcs are linearly or exponentially proportional to the self+descendants times for the functions.
Claim 8
Dependent Claim 56 words
The method of claim 1, wherein collecting profiling data includes determining a time for an operating system call by recording a start time before the operating system call and recording an end time after the operating system call such that the time for the operating system call is the difference between the start and stop times.
Claim 9
Dependent Claim 15 words
The method of claim 1, further comprising augmenting the computer program to add profiling code.
Claim 10
Dependent Claim 125 words
A computer program product for profiling execution of a computer program including functions, comprising: computer code that collects profiling data for the functions during execution of the computer program, the profiling data including self+descendants times for the functions; computer code that constructs a call graph of function calls for the computer program; computer code that prunes the call graph to remove arcs depicting a function call to a function that has a self+descendants time that is less than a pruning time filter value; computer code that displays a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically show the relative self+descendants times for the functions; and a computer readable medium that stores said computer codes.
Claim 11
Dependent Claim 125 words
A computer program product for profiling execution of a computer program including functions, comprising: computer code that collects profiling data for the functions during execution of the computer program, the profiling data including self+descendants times for the functions; computer code that constructs a call graph of function calls for the computer program; computer code that prunes the call graph to remove arcs depicting a function call to a function that has a self+descendants time that is less than a pruning time filter value; computer code that displays a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically show the relative self+descendants times for the functions; and a computer readable medium that stores said computer codes.
Claim 12
Independent Claim 104 words
A method for profiling execution of a computer program including functions, comprising: collecting profiling data for the functions during execution of the computer program, the profiling data including self+descendants times for the functions; constructing a call graph of function calls for the computer program; and displaying a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically show the relative self+descendants times for the functions, wherein the graphical representations of the self+descendants times for the functions are the widths of the arcs such that the widths are proportional to the self+descendants times for the functions.
Claim 13
Independent Claim 104 words
A method for profiling execution of a computer program including functions, comprising: collecting profiling data for the functions during execution of the computer program, the profiling data including self+descendants times for the functions; constructing a call graph of function calls for the computer program; and displaying a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically show the relative self+descendants times for the functions, wherein the graphical representations of the self+descendants times for the functions are the widths of the arcs such that the widths are proportional to the self+descendants times for the functions.
Claim 14
Dependent Claim 23 words
The method of claim 10, wherein the widths of the arcs are linearly or exponentially proportional to the self+descendants times for the functions.
Claim 15
Dependent Claim 35 words
The method of claim 10, further comprising pruning the call graph to remove arcs depicting a function call to a function that has a self+descendants time that is less than a pruning time filter value.
Claim 16
Dependent Claim 41 words
The method of claim 12, wherein the pruning time filter value is automatically determined under computer control so that a predetermined number of functions of the computer program have self+descendants times equal to or greater than the pruning time filter value.
Claim 17
Dependent Claim 20 words
The method of claim 13, wherein the predetermined number of functions of the computer program is less than one hundred.
Claim 18
Dependent Claim 17 words
The method of claim 14, wherein the predetermined number of functions of the computer program is thirty.
Claim 19
Dependent Claim 56 words
The method of claim 10, wherein collecting profiling data includes determining a time for an operating system call by recording a start time before the operating system call and recording an end time after the operating system call such that the time for the operating system call is the difference between the start and stop times.
Claim 20
Dependent Claim 15 words
The method of claim 10, further comprising augmenting the computer program to add profiling code.
Claim 21
Dependent Claim 124 words
A computer program product for profiling execution of a computer program including functions, comprising: computer code that collects profiling data for the functions during execution of the computer program, the profiling data including self+descendants times for the functions; computer code that constructs a call graph of function calls for the computer program; computer code that displays a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically show the relative self+descendants times for the functions, wherein the graphical representations of the self+descendants times for the functions are the widths of the arcs such that the widths are proportional to the self+descendants times for the functions; and a computer readable medium that stores said computer codes.
Claim 22
Dependent Claim 124 words
A computer program product for profiling execution of a computer program including functions, comprising: computer code that collects profiling data for the functions during execution of the computer program, the profiling data including self+descendants times for the functions; computer code that constructs a call graph of function calls for the computer program; computer code that displays a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically show the relative self+descendants times for the functions, wherein the graphical representations of the self+descendants times for the functions are the widths of the arcs such that the widths are proportional to the self+descendants times for the functions; and a computer readable medium that stores said computer codes.
Claim 23
Independent Claim 138 words
A method for profiling execution of a computer program including functions, comprising: collecting profiling data for the functions during execution of the computer program, the profiling data including self+descendants times for the functions; constructing a call graph of function calls for the computer program; pruning the call graph to remove arcs depicting a function call to a function that has a self+descendants time that is less than a pruning time filter value, wherein the pruning time filter value is automatically determined under computer control so that a predetermined number of functions of the computer program have self+descendants times equal to or greater than the pruning time filter value; and displaying a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically show the relative self+descendants times for the functions.
Claim 24
Independent Claim 138 words
A method for profiling execution of a computer program including functions, comprising: collecting profiling data for the functions during execution of the computer program, the profiling data including self+descendants times for the functions; constructing a call graph of function calls for the computer program; pruning the call graph to remove arcs depicting a function call to a function that has a self+descendants time that is less than a pruning time filter value, wherein the pruning time filter value is automatically determined under computer control so that a predetermined number of functions of the computer program have self+descendants times equal to or greater than the pruning time filter value; and displaying a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically show the relative self+descendants times for the functions.
Claim 25
Dependent Claim 35 words
The method of claim 19, wherein the graphical representations of the self+descendants times for the functions are the widths of the arcs such that the widths are proportional to the self+descendants times for the functions.
Claim 26
Dependent Claim 23 words
The method of claim 20, wherein the widths of the arcs are linearly or exponentially proportional to the self+descendants times for the functions.
Claim 27
Dependent Claim 20 words
The method of claim 19, wherein the predetermined number of functions of the computer program is less than one hundred.
Claim 28
Dependent Claim 17 words
The method of claim 22, wherein the predetermined number of functions of the computer program is thirty.
Claim 29
Dependent Claim 56 words
The method of claim 19, wherein collecting profiling data includes determining a time for an operating system call by recording a start time before the operating system call and recording an end time after the operating system call such that the time for the operating system call is the difference between the start and stop times.
Claim 30
Dependent Claim 15 words
The method of claim 19, further comprising augmenting the computer program to add profiling code.
Claim 31
Dependent Claim 161 words
A computer program product for profiling execution of a computer program including functions, comprising: computer code that collects profiling data for the functions during execution of the computer program, the profiling data including self+descendants times for the functions; computer code that constructs a call graph of function calls for the computer program; computer code that prunes the call graph to remove arcs depicting a function call to a function that has a self+descendants time that is less than a pruning time filter value, wherein the pruning time filter value is automatically determined under computer control so that a predetermined number of functions of the computer program have self+descendants times equal to or greater than the pruning time filter value; computer code that displays a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically show the relative self+descendants times for the functions; and a computer readable medium that stores said computer codes.
Claim 32
Dependent Claim 161 words
A computer program product for profiling execution of a computer program including functions, comprising: computer code that collects profiling data for the functions during execution of the computer program, the profiling data including self+descendants times for the functions; computer code that constructs a call graph of function calls for the computer program; computer code that prunes the call graph to remove arcs depicting a function call to a function that has a self+descendants time that is less than a pruning time filter value, wherein the pruning time filter value is automatically determined under computer control so that a predetermined number of functions of the computer program have self+descendants times equal to or greater than the pruning time filter value; computer code that displays a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically show the relative self+descendants times for the functions; and a computer readable medium that stores said computer codes.
Claim 33
Independent Claim 72 words
A method for profiling execution of a computer program including functions, comprising: collecting profiling data for the functions during execution of the computer program, the profiling data including times for the functions; constructing a call graph of function calls for the computer program; and displaying a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically show the relative times for the functions.
Claim 34
Independent Claim 72 words
A method for profiling execution of a computer program including functions, comprising: collecting profiling data for the functions during execution of the computer program, the profiling data including times for the functions; constructing a call graph of function calls for the computer program; and displaying a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically show the relative times for the functions.
Claim 35
Dependent Claim 33 words
The method of claim 27, wherein the graphical representations of the times for the functions are the widths of the arcs such that the widths are proportional to the times for the functions.
Claim 36
Dependent Claim 22 words
The method of claim 28, wherein the widths of the arcs are linearly or exponentially proportional to the times for the functions.
Claim 37
Dependent Claim 34 words
The method of claim 27, further comprising pruning the call graph to remove arcs depicting a function call to a function that has a time that is less than a pruning time filter value.
Claim 38
Dependent Claim 40 words
The method of claim 28, wherein the pruning time filter value is automatically determined under computer control so that a predetermined number of functions of the computer program have times equal to or greater than the pruning time filter value.
Claim 39
Dependent Claim 21 words
The method of claim 31, wherein the predetermined number of functions of the computer program is less than about one hundred.
Claim 40
Dependent Claim 18 words
The method of claim 32, wherein the predetermined number of functions of the computer program is about thirty.
Claim 41
Dependent Claim 56 words
The method of claim 27, wherein collecting profiling data includes determining a time for an operating system call by recording a start time before the operating system call and recording an end time after the operating system call such that the time for the operating system call is the difference between the start and stop times.
Claim 42
Dependent Claim 15 words
The method of claim 27, further comprising augmenting the computer program to add profiling code.
Claim 43
Dependent Claim 16 words
The method of claim 27, wherein the times are self or self+descendants times for the functions.
Claim 44
Dependent Claim 92 words
A computer program product for profiling execution of a computer program including functions, comprising: computer code that collects profiling data for the functions during execution of the computer program, the profiling data including times for the functions; computer code that constructs a call graph of function calls for the computer program; computer code that displays a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically approximate the relative times for the functions; and a computer readable medium that stores said computer codes.
Claim 45
Dependent Claim 92 words
A computer program product for profiling execution of a computer program including functions, comprising: computer code that collects profiling data for the functions during execution of the computer program, the profiling data including times for the functions; computer code that constructs a call graph of function calls for the computer program; computer code that displays a representation of the call graph including arcs that connect functions to depict function calls and graphical representations that graphically approximate the relative times for the functions; and a computer readable medium that stores said computer codes.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-04-11 2003-10-11 2004-04-11 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-04-11 2007-10-11 2008-04-11 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-04-11 2011-10-11 2012-04-11 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag