Patent US5828883A successfully refreshed from Google Patents.
US5828883A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Call path refinement profiles
Assignee: Nokia of America Corp
•
Filing: 1995-09-27
•
Granted: 1998-10-27
•
Expires: 2015-09-27
Abstract
Abstract A method and system for measuring the usage of a focus resource by a target program which has a plurality of call paths and at least one procedure, which allows a user to select a focus call path from a call path profile and compute a refinement call path profile which shows the usage of the focus resource by refinement call paths of the focus call path. Methods and systems are disclosed for deriving the call path profile, pruning and unpruning the call path profile, defining function groups, optimizing and contextualizing. Computation of the refinement call path profile can be performed by immediate upward or downward and extended upward or downward refinement of the call path profile.
Inventors
- 👤 Robert J. Hall
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-30 06:17
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/30; G06F11/34; G06F11/3466; G06F11/3409; G06F2201/00; G06F2201/815; G06F2201/865; G06F2201/88
Claims Analysis
Total Claims: 50
Claim 1
Independent Claim
136 words
A method for measuring usage of at least one focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: providing a call path profile containing a data list, in some predetermined order, of some subset, including a null set, of said plurality of call paths together with associated usage cost of said focus resource; selecting a focus call path from said call path profile or from said plurality of call paths; and computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path wherein said refinement call path profile is invoked by a user via a unique switch with said call path to be analyzed indicated by said focus call path.
Claim 2
Independent Claim
136 words
A method for measuring usage of at least one focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: providing a call path profile containing a data list, in some predetermined order, of some subset, including a null set, of said plurality of call paths together with associated usage cost of said focus resource; selecting a focus call path from said call path profile or from said plurality of call paths; and computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path wherein said refinement call path profile is invoked by a user via a unique switch with said call path to be analyzed indicated by said focus call path.
Claim 3
Dependent Claim
33 words
The method of claim 1 wherein said computing said refinement call path profile shows said usage of said focus resource of a subset of said refinement call paths of said focus call path.
Claim 4
Dependent Claim
37 words
The method of claim 2 wherein said data collection phase comprises running said target program on said processor under control of a sampling process that periodically interrupts said program and a stack sample is generated and recorded.
Claim 5
Dependent Claim
55 words
The method of claim 2 wherein said data collection phase comprises instrumenting said target program by adding a data collection code as part of an instrumentation process, running said program on said processor, and recording data on said usage costs associated with each of at least one call site while said target program is running.
Claim 6
Dependent Claim
51 words
The method of claim 1 further comprising the step of defining a function group from said call paths in said call path profile which allows grouping of said call paths from said data list as said focus call path and computing said refinement call path profile on said focus call path.
Claim 7
Dependent Claim
15 words
The method of claim 5 wherein an initial call path profile is a function profile.
Claim 8
Dependent Claim
39 words
The method of claim 6 wherein said function profile is derived from refinement of an empty call path wherein all said function groups in said target program are identified along with their proportion of usage of said focus resource.
Claim 9
Dependent Claim
47 words
The method of claim 1 wherein said call path profile is derived by running said target program using a processor in a data collection phase during which information regarding said usage of said focus resource is collected and computing said call path profile containing said data list.
Claim 10
Dependent Claim
48 words
The method of claim 1 further comprising the step of pruning to exclude some of said data from said call path profile, or unpruning to restore some or all of said excluded data and computing said refinement call path profile on said pruned or unpruned call path profile.
Claim 11
Dependent Claim
16 words
The method of claim 1 further comprising the step of displaying said refinement call path profile.
Claim 12
Dependent Claim
19 words
The method of claim 1 further comprising the step of displaying a subset of said refinement call path profile.
Claim 13
Dependent Claim
20 words
The method of claim 1 where said refinement call path profile is sorted in decreasing order of said usage cost.
Claim 14
Dependent Claim
35 words
The method of claim 1 wherein the steps of selecting said focus call path and computing said refinement call path profile are iteratively repeated by a user until desired level of refinement has been attained.
Claim 15
Dependent Claim
15 words
The method of claim 1 wherein an initial call path profile is a function profile.
Claim 16
Dependent Claim
38 words
The method of claim 14 wherein said function profile is derived from refinement of an empty call path wherein all said procedures in said target program are identified along with their proportion of usage of said focus resource.
Claim 17
Dependent Claim
51 words
The method of claim 1 wherein said call path profile is derived by selecting said focus resource from a plurality of monotonic computer resources, running said target program and collecting data regarding usage of said focus resource, generating a stack tree and generating said call path profile from said stack tree.
Claim 18
Dependent Claim
43 words
The method of claim 1 wherein said computed refinement call path profile is merged into a previously computed said refinement call path profile so resulting computed refinement call path profile contains both newly computed and said previously computed information of said usage costs.
Claim 19
Dependent Claim
26 words
The method of claim 17 wherein said merged refinement call path profile is sorted in decreasing order of said usage costs of said focus call path.
Claim 20
Dependent Claim
53 words
The method of claim 1 wherein said refinement call path profile is an extended refinement profile, said extended refinement profile showing for each said refinement call path said focus resource usage along a summary of all said call paths starting with said focus call path and ending with a procedure or function group.
Claim 21
Dependent Claim
21 words
The method of claim 19 wherein said refinement call path profile is upward or downward relative to said focus call path.
Claim 22
Dependent Claim
89 words
The method of claim 20 wherein an initial call path profile is a function profile, said function profile is derived by selecting said focus resource from a plurality of monotonic computer resources, running said target program and collecting data regarding usage of said focus resource, generating a stack tree and generating said function profile from said stack tree, said extended upward refinement call path profile is computed by constructing a dual of said stack tree and computing said extended upward refinement call path profile from said dual stack tree.
Claim 23
Dependent Claim
41 words
The method of claim 1 wherein said refinement call path profile is an immediate refinement profile, said immediate refinement profile computing said focus resource usage one procedure or function group call level immediately upward or downward from said focus call path.
Claim 24
Dependent Claim
21 words
The method of claim 20 wherein said refinement call path profile is upward or downward relative to said focus call path.
Claim 25
Dependent Claim
89 words
The method of claim 23 wherein an initial call path profile is a function profile, said function profile is derived by selecting said focus resource from a plurality of monotonic computer resources, running said target program and collecting data regarding usage of said focus resource, generating a stack tree and generating said function profile from said stack tree, said immediate upward refinement call path profile is computed by constructing a dual of said stack tree and computing said immediate upward refinement call path profile from said dual stack tree.
Claim 26
Dependent Claim
18 words
The method of claim 1 wherein said focus resource is selected from a plurality of monotonic computer resources.
Claim 27
Independent Claim
161 words
A method for measuring usage of a focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: providing a call path profile containing a data list, in some predetermined order, of some subset of said plurality of call paths together with associated usage cost of said focus resource; selecting a focus call path from said call path profile; and computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path by applying an extended refinement profile, said extended refinement profile invoked by a user via a unique switch with said user specifying said focus call path to be analyzed, said extended refinement profile showing for each said refinement call path said focus resource usage along a summary of all said call paths starting with said focus call path and ending with a procedure or function group.
Claim 28
Independent Claim
161 words
A method for measuring usage of a focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: providing a call path profile containing a data list, in some predetermined order, of some subset of said plurality of call paths together with associated usage cost of said focus resource; selecting a focus call path from said call path profile; and computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path by applying an extended refinement profile, said extended refinement profile invoked by a user via a unique switch with said user specifying said focus call path to be analyzed, said extended refinement profile showing for each said refinement call path said focus resource usage along a summary of all said call paths starting with said focus call path and ending with a procedure or function group.
Claim 29
Dependent Claim
21 words
The method of claim 26 wherein said refinement call path profile is upward or downward relative to said focus call path.
Claim 30
Independent Claim
151 words
A method for measuring usage of a focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: providing a call path profile containing a data list, in some predetermined order, of some subset of said plurality of call paths together with associated usage cost of said focus resource; selecting a focus call path from said call path profile; and computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path by applying an immediate refinement profile, said immediate refinement profile invoked by a user via a unique switch with said call path to be analyzed indicated by said focus call path, said immediate refinement profile computing said focus resource usage one procedure or function group call level immediately upward or downward from said focus call path.
Claim 31
Independent Claim
151 words
A method for measuring usage of a focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: providing a call path profile containing a data list, in some predetermined order, of some subset of said plurality of call paths together with associated usage cost of said focus resource; selecting a focus call path from said call path profile; and computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path by applying an immediate refinement profile, said immediate refinement profile invoked by a user via a unique switch with said call path to be analyzed indicated by said focus call path, said immediate refinement profile computing said focus resource usage one procedure or function group call level immediately upward or downward from said focus call path.
Claim 32
Dependent Claim
21 words
The method of claim 28 wherein said refinement call path profile is upward or downward relative to said focus call path.
Claim 33
Independent Claim
159 words
A method for improving performance of a target program having a plurality of call paths, said target program having at least one procedure, said method comprising the steps of: providing a call path profile containing a data list, in some predetermined order, of some subset of said plurality of call paths together with associated usage costs of a focus resource; (a) selecting a focus call path from said call path profile or from said plurality of call paths; (b) computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path wherein said refinement call path profile is invoked by a user via a unique switch with said call path to be analyzed indicated by said focus call path; (c) determining a bottleneck call path from said usage shown in said refinement call path profile; and (d) optimizing said bottleneck call path by changing code of said target program.
Claim 34
Independent Claim
159 words
A method for improving performance of a target program having a plurality of call paths, said target program having at least one procedure, said method comprising the steps of: providing a call path profile containing a data list, in some predetermined order, of some subset of said plurality of call paths together with associated usage costs of a focus resource; (a) selecting a focus call path from said call path profile or from said plurality of call paths; (b) computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path wherein said refinement call path profile is invoked by a user via a unique switch with said call path to be analyzed indicated by said focus call path; (c) determining a bottleneck call path from said usage shown in said refinement call path profile; and (d) optimizing said bottleneck call path by changing code of said target program.
Claim 35
Dependent Claim
36 words
The method of claim 30 wherein steps (a)-(e) are iteratively repeated to further improve efficiency of said target program until either (1) desired efficiency is reached, or (2) no further improvements in efficiency can be achieved.
Claim 36
Dependent Claim
62 words
The method of claim 30 wherein said optimization step (e) is implemented by first modifying said target program wherein said procedures of said focus call path are rewritten into new procedure versions so that said new procedure versions are only called within a context specified in said focus call path, and then, said new procedure versions are refined using said steps (a)-(e).
Claim 37
Independent Claim
225 words
A method for measuring and presenting information as to usage of a focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: (a) running said target program using a processor in a data collection phase during which information regarding said usage of said focus resource is collected; (b) computing a call path profile containing a data list of some subset of said plurality of call paths together with their resource usage costs, in some predetermined order; (c) displaying said profile to a user; (d) allowing said user to define a new function group of said call paths from said profile; (e) allowing said user to exclude some of said data from said data list, or to restore some or all of said excluded data; (f) allowing said user to specify one or more single call paths of said call path profile, computing said usage costs, and displaying said usage costs to said user; (g) allowing said user to select a focus call path to be refined from said call path profile; (h) computing a refinement profile showing usage of said focus resource via refinement call paths of said focus call path; (i) displaying said refinement profile; and (j) allowing said user to return to said step (d), or terminating said method.
Claim 38
Independent Claim
225 words
A method for measuring and presenting information as to usage of a focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: (a) running said target program using a processor in a data collection phase during which information regarding said usage of said focus resource is collected; (b) computing a call path profile containing a data list of some subset of said plurality of call paths together with their resource usage costs, in some predetermined order; (c) displaying said profile to a user; (d) allowing said user to define a new function group of said call paths from said profile; (e) allowing said user to exclude some of said data from said data list, or to restore some or all of said excluded data; (f) allowing said user to specify one or more single call paths of said call path profile, computing said usage costs, and displaying said usage costs to said user; (g) allowing said user to select a focus call path to be refined from said call path profile; (h) computing a refinement profile showing usage of said focus resource via refinement call paths of said focus call path; (i) displaying said refinement profile; and (j) allowing said user to return to said step (d), or terminating said method.
Claim 39
Independent Claim
139 words
A system for measuring usage of at least one focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising: means for providing a call path profile containing a data list, in some predetermined order, of some subset, including a null set, of said plurality of call paths together with associated usage cost of said focus resource; means for selecting a focus call path from said call path profile or from said plurality of call paths; and means for computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path wherein said refinement call path profile is invoked by a user via a unique switch with said call path to be analyzed indicated by said focus call path.
Claim 40
Independent Claim
139 words
A system for measuring usage of at least one focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising: means for providing a call path profile containing a data list, in some predetermined order, of some subset, including a null set, of said plurality of call paths together with associated usage cost of said focus resource; means for selecting a focus call path from said call path profile or from said plurality of call paths; and means for computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path wherein said refinement call path profile is invoked by a user via a unique switch with said call path to be analyzed indicated by said focus call path.
Claim 41
Independent Claim
167 words
A system for measuring usage of a focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: means for providing a call path profile containing a data list, in some predetermined order, of some subset of said plurality of call paths together with associated usage cost of said focus resource; means for selecting a focus call path from said call path profile; and means for computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path by applying an extended refinement profile, said extended refinement profile invoked by a user via a unique switch with said user specifying said focus call path to be analyzed, said extended refinement profile showing for each said refinement call path said focus resource usage along a summary of all said call paths starting with said focus call path and ending with a procedure or function group.
Claim 42
Independent Claim
167 words
A system for measuring usage of a focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: means for providing a call path profile containing a data list, in some predetermined order, of some subset of said plurality of call paths together with associated usage cost of said focus resource; means for selecting a focus call path from said call path profile; and means for computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path by applying an extended refinement profile, said extended refinement profile invoked by a user via a unique switch with said user specifying said focus call path to be analyzed, said extended refinement profile showing for each said refinement call path said focus resource usage along a summary of all said call paths starting with said focus call path and ending with a procedure or function group.
Claim 43
Dependent Claim
21 words
The system of claim 35 wherein said refinement call path profile is upward or downward relative to said focus call path.
Claim 44
Independent Claim
157 words
A system for measuring usage of a focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: means for providing a call path profile containing a data list, in some predetermined order, of some subset of said plurality of call paths together with associated usage cost of said focus resource; means for selecting a focus call path from said call path profile; and means for computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path by applying an immediate refinement profile, said immediate refinement profile invoked by a user via a unique switch with said call path to be analyzed indicated by said focus call path, said immediate refinement profile computing said focus resource usage one procedure or function group call level immediately upward or downward from said focus call path.
Claim 45
Independent Claim
157 words
A system for measuring usage of a focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: means for providing a call path profile containing a data list, in some predetermined order, of some subset of said plurality of call paths together with associated usage cost of said focus resource; means for selecting a focus call path from said call path profile; and means for computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path by applying an immediate refinement profile, said immediate refinement profile invoked by a user via a unique switch with said call path to be analyzed indicated by said focus call path, said immediate refinement profile computing said focus resource usage one procedure or function group call level immediately upward or downward from said focus call path.
Claim 46
Dependent Claim
21 words
The system of claim 37 wherein said refinement call path profile is upward or downward relative to said focus call path.
Claim 47
Independent Claim
168 words
A system for improving performance of a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: (a) means for providing a call path profile containing a data list, in some predetermined order, of some subset of said plurality of call paths together with associated usage costs of a focus resource; (b) means for selecting a focus call path from said call path profile or from said plurality of call paths; (c) means for computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path wherein said refinement call path profile is invoked by a user via a unique switch with said call path to be analyzed indicated by said focus call path; (d) means for determining a bottleneck call path from said usage shown in said refinement call path profile; and (e) means for optimizing said bottleneck call path by changing code of said target program.
Claim 48
Independent Claim
168 words
A system for improving performance of a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: (a) means for providing a call path profile containing a data list, in some predetermined order, of some subset of said plurality of call paths together with associated usage costs of a focus resource; (b) means for selecting a focus call path from said call path profile or from said plurality of call paths; (c) means for computing a refinement call path profile showing said usage of said focus resource by refinement call paths of said focus call path wherein said refinement call path profile is invoked by a user via a unique switch with said call path to be analyzed indicated by said focus call path; (d) means for determining a bottleneck call path from said usage shown in said refinement call path profile; and (e) means for optimizing said bottleneck call path by changing code of said target program.
Claim 49
Independent Claim
228 words
A system for measuring and presenting information as to usage of a focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: (a) means for running said target program using a processor in a data collection phase during which information regarding said usage of said focus resource is collected; (b) means for computing a call path profile containing a data list of some subset of said plurality of call paths together with their resource usage costs, in some predetermined order; (c) means for displaying said profile to a user; (d) means for defining a new function group of said call paths from said profile; (e) means for excluding some of said data from said data list, or to restore some or all of said excluded data; (f) means for specifying one or more single call paths of said call path profile, computing said usage costs, and displaying said usage costs to said user; (g) means for selecting a focus call path to be refined from said call path profile; (h) means for computing a refinement profile showing usage of said focus resource via refinement call paths of said focus call path; (i) means for displaying said refinement profile; and (j) means for either returning to said step (d), or terminating operation of said system.
Claim 50
Independent Claim
228 words
A system for measuring and presenting information as to usage of a focus resource by a target program having a plurality of call paths, said target program having at least one procedure, comprising the steps of: (a) means for running said target program using a processor in a data collection phase during which information regarding said usage of said focus resource is collected; (b) means for computing a call path profile containing a data list of some subset of said plurality of call paths together with their resource usage costs, in some predetermined order; (c) means for displaying said profile to a user; (d) means for defining a new function group of said call paths from said profile; (e) means for excluding some of said data from said data list, or to restore some or all of said excluded data; (f) means for specifying one or more single call paths of said call path profile, computing said usage costs, and displaying said usage costs to said user; (g) means for selecting a focus call path to be refined from said call path profile; (h) means for computing a refinement profile showing usage of said focus resource via refinement call paths of said focus call path; (i) means for displaying said refinement profile; and (j) means for either returning to said step (d), or terminating operation of said system.
References Cited (Backward Citations)
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2001-10-26 | 2002-04-27 | 2002-10-27 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2005-10-26 | 2006-04-27 | 2006-10-27 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2009-10-26 | 2010-04-27 | 2010-10-27 | $7700.00 | Window Closed / Lapsed |