Memory leak analysis by usage trends correlation

US9454454B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9454454-B2
Application numberUS-201414481687-A
CountryUS
Kind codeB2
Filing dateSep 9, 2014
Priority dateSep 9, 2014
Publication dateSep 27, 2016
Grant dateSep 27, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Tools and techniques assist developers with the detection of memory leaks by using correlation of data type memory usage trends. In particular, investigations of memory leaks can be prioritized without always resorting to the use of bulky and performance-degrading memory dumps, by using these tools and techniques to identify leaky correlated data types. Data about a program's memory usage is processed to identify memory usage trends over time for respective data types, and the trends are searched for significant correlations. Correlated trends (and hence their corresponding data types) are grouped. Memory usage analysis information is displayed for grouped data types, such as the names of the most rapidly leaking data types, the names of correlated data types, leak rates, and leak amounts in terms of memory size and/or data object counts. Memory usage data may also be correlated with processing load requests to indicate which requests have associated memory leaks.

First claim

Opening claim text (preview).

What is claimed is: 1. A computational process for improving the functioning of a computer by assisting detection of memory leaks in a software program which has a processing load and which uses memory, the process comprising: (a) obtaining memory usage data which includes memory usage samples which collectively specify a plurality of data types, each memory usage sample specifying a value of at least one usage statistic for at least one of the data types at a specified sample time; (b) computationally identifying respective memory usage trends over time for a plurality of the data types, by processing at least part of the memory usage data with a processor; (c) computationally searching for correlations between data type memory usage trends, wherein the searching comprises computing statistical measures of distances between pairs or other tuples of the data type memory usage trends; (d) computationally grouping data types into memory-usage-trend-correlated groups based on the computed statistical measures of distances between pairs or other tuples of the data type memory usage trends, such that all data types in a given memory-usage-trend-correlated group have memory usage trends that satisfy a predetermined trend correlation criterion, and data types whose trends do not satisfy the predetermined trend correlation criterion are not in the given memory-usage-trend-correlated group; (e) utilizing a result of the grouping step; (f) computationally searching for correlations between data type memory usage trends and one or more processing load request trends; and (g) presenting to a user a report which includes information, based on said searching, about a correlation between data type memory usage and processing load requests. 2. The computational process of claim 1 , wherein the predetermined trend correlation criterion specifies that trends are correlated when, and only when, they have a correlation coefficient beyond a predetermined correlation threshold. 3. The computational process of claim 1 , wherein usage statistics for each of the data types include at least one of the following: a count indicating how many items of the data type were allocated; a count indicating how many items of the data type were deallocated; a memory size indicating how much memory was designated as allocated to items of the data type; a memory size indicating how much memory designated as allocated to items of the data type was deallocated. 4. The computational process of claim 1 , wherein computationally identifying respective memory usage trends includes at least one of the following: performing simple linear regression using least squares to fit usage statistics to a linear trend; performing a segmented regression to fit usage statistics to a piecewise linear trend; performing a nonlinear regression to fit usage statistics to a nonlinear trend. 5. The computational process of claim 1 , wherein computationally searching for correlations between data type memory usage trends includes at least one of the following: determining a Pearson product-moment correlation coefficient for data type memory usage trends; determining a Spearman's rank correlation coefficient for data type memory usage trends; determining a Kendall rank correlation coefficient for data type memory usage trends; determining a distance correlation for data type memory usage trends; determining a distance covariance for data type memory usage trends; determining a Brownian distance covariance for data type memory usage trends. 6. The computational process of claim 1 , wherein computationally identifying respective memory usage trends includes normalizing usage statistics for the processing load. 7. The computational process of claim 1 , wherein computationally grouping data types into memory-usage-trend-correlated groups includes grouping two data types which have trends that have a correlation coefficient above a predetermined threshold even though the trends have different growth rates. 8. The computational process of claim 1 , wherein utilizing a result of the grouping step includes at least one of the following: displaying data type names of data types which are in a group identified to a user as having the most memory leakage; displaying data type names of user-defined data types which are in a group identified as having the most memory leakage of the user-defined data types; displaying an estimated leak size for a particular data type; displaying an estimated leak rate in memory size per unit of time for a particular data type; displaying an estimated leaked item count for a particular data type; displaying an estimated leak rate in item count per unit of time for a particular data type. 9. The computational process of claim 1 , further comprising identifying a group of data types which all showed little or no memory leakage, then showed a spurt of leaks, and then again showed little or no memory leakage. 10. A computer-readable storage medium configured with data and with instructions that when executed by at least one processor causes the processor(s) to perform a technical process for assisting detection of memory leaks in software which has a processing load and which uses memory, the technical process comprising the steps of: (a) obtaining memory usage data which includes memory usage samples which collectively specify a plurality of data types, each memory usage sample specifying a value of at least one usage statistic for at least one of the data types at a specified sample time; (b) computationally identifying respective memory usage trends over time for a plurality of the data types, by processing at least part of the memory usage data with a processor; (c) computationally searching for correlations between data type memory usage trends and one or more processing load request trends; and (d) presenting to a user a report which includes information, based on said searching, about a correlation between data type memory usage and processing load requests. 11. The configured storage medium of claim 10 , wherein the technical process further comprises restarting a software process in response to a result of said searching for correlations between data type memory usage trends and processing load request trends. 12. The configured storage medium of claim 10 , wherein usage statistics for each of the data types include at least one of the following: a count indicating how many items of the data type were allocated; a memory size indicating how much memory was designated as allocated to items of the data type. 13. The configured storage medium of claim 10 , wherein computationally searching for correlations between data type memory usage trends and processing load request trends includes at least one of the following: determining a Pearson product-moment correlation coefficient; determining a Spearman's rank correlation coefficient; determining a Kendall rank correlation coefficient; determining a distance correlation. 14. The configured storage medium of claim 10 , wherein the technical process further comprises at least two of the following: displaying an estimated leak size for a particular data type; displaying an estimated leak rate in memory size per unit of time for a particular data type; displaying an estimated leaked item count for a particular data type; displaying an estimated leak rate in item count per unit of time for a particular data type; restarting a software process in response to an estimated leaked item count; restarting a software process in response to an estimated leak rate. 15.

Assignees

Inventors

Classifications

  • where the computing system component is a memory, e.g. virtual memory, cache (accessing, addressing or allocating within memory systems or architectures G06F12/00; checking stores for correct operation G11C29/00) · CPC title

  • Performance evaluation by statistical analysis · CPC title

  • the resource being the memory · CPC title

  • by runtime analysis (performance monitoring G06F11/3466) · CPC title

  • Garbage collection, i.e. reclamation of unreferenced memory · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9454454B2 cover?
Tools and techniques assist developers with the detection of memory leaks by using correlation of data type memory usage trends. In particular, investigations of memory leaks can be prioritized without always resorting to the use of bulky and performance-degrading memory dumps, by using these tools and techniques to identify leaky correlated data types. Data about a program's memory usage is pr…
Who is the assignee on this patent?
Microsoft Corp, Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F11/3452. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 27 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).