摘要:
A method for identifying a set of objects in a target application program includes: receiving a plurality of samples of one or more object reference graphs, wherein each object reference graph includes live objects and their references; deriving a set of candidate data structures from the samples; collecting a plurality of properties of each of the live objects in relation to data structures over time; and using a mixture model, combining the plurality of the properties of each live object in a non-linear manner for ranking leak root candidates within each set of candidate data structures The method also includes the identification of an initial set of highly-ranked candidate objects that are possible causes of at least one object leak, wherein the higher the ranking the smaller the identified set.
摘要:
Analyzing the runtime behavior of a program given a set of one or more probes and points for inserting the probes for performing a specified inspection, includes providing a compiler with one or more of the following types of information about each probe: specifying the probe's context, its filter criteria, whether it is a fast-path probe, whether it is a timing probe, the probe's guard swing, the probe's context hardness, and the probe's temporal hardness; and compiling the program with the one or more probes and the information.
摘要:
A method, information processing system, and computer readable medium for annotating graphs to allow for subsequent quick loading and analysis of very large graphs is described. The present invention encompasses a way to order and annotate nodes of a graph into a data stream that allows for optimization of subsequent processing of nodes in later analysis. For example, a very large reference graph representing heap snapshots may be annotated to facilitate post-processing and visualization of the heap for memory leak analysis. In such an example, the present invention reduces the number of objects and references to be modeled in memory, while still capturing the essence of the non-modeled portions. In this example, the present invention may process reference graphs on the scale of one hundred million live objects per snapshot using a computer with one gigabyte of memory.
摘要:
A method for determining how a region of a data structure in an application evolves comprises the steps of: periodically traversing selected subgraphs of the region in the running application; locating structural changes in the subgraphs; using these structural changes to describe, characterize, and identify changes to the region as a whole; and reporting the region changes to an analysis agent. Determining how a region of a data structure evolves is a continuous and adaptive process. The process is made continuous and adaptive through several methods, including: identifying a set of desired updates; adjusting the period in between traversals based on whether the desired updates have been witnessed; and adjusting the frequency of sampling any one traversal based on whether that traversal has detected desired updates. Additionally, the method comprises updating qualitative and quantitative characterizations of the regions under analysis based on structural changes to the regions as whole.