IP Library Granted Patent US 11,048,616
Granted Patent B2
US 11,048,616 · App. 14/640,581 · Granted Jun 29, 2021

Memory leak detection

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,048,616
App. No.
14/640,581
Granted
Jun 29, 2021
Kind
B2
Abstract

In accordance with aspects of the disclosure, systems and methods are provided for monitoring one or more classes for detecting suspected memory leaks in a production environment. The systems and methods may include identifying which of the one or more classes hold at least one static or non-static field of collection or array type, accessing the one or more classes that hold the at least one static or non-static fields of collection or array type, and tracking a size for each field of each class by periodically sampling the size of each field over an interval, processing the size data for each field of each class, and detecting suspected memory leaks of each class by identifying which of the one or more fields of each class exhibits suspect behavior in the size over the interval.

Claims (46)

1. A computer-implemented method for managing usage of memory by an application running on a computer, the method comprising:

performing a first sampling of size data of classes of the application over a first time interval;

determining a list of classes that show a memory leak behavior based on the first sampling of size data;

storing the list of classes suspected of the memory leak behavior during a first wait interval;

following the first wait interval, performing a second sampling of size data of the list of classes over a second time interval;

determining the memory leak behavior of the list of classes, based on a comparison of the first sampling of size data and the second sampling of size data, the memory leak behavior indicating either a growing trend of at least one memory leak metric, or a decreasing trend of the at least one memory leak metric;

selecting a second wait interval that is shorter than the first wait interval when the memory leak behavior indicates the growing trend, or selecting a second wait interval that is longer than the first wait interval when the memory leak behavior indicates the decreasing trend;

storing the list of classes during the second wait interval;

following the second wait interval, performing a third sampling of size data of the list of classes over a third time interval; and

determining updated memory leak behavior of the list of classes, based on the second sampling of size data and the third sampling of size data.

2. The computer-implemented method of claim 1 , wherein each class of the list of classes includes at least one of a static field and a non-static field.

3. The computer-implemented method of claim 1 , further comprising modifying code for a class of the list of classes including a specific field exhibiting the memory leak behavior in its tracked size.

4. The computer-implemented method of claim 1 , further comprising:

marking a specific field of a class of the list of classes exhibiting the memory leak behavior in its tracked size.

5. The computer-implemented method of claim 1 , wherein determining memory leak behavior of the list of classes comprises monitoring the classes in a production environment.

6. The computer-implemented method of claim 1 , wherein at least one field included in each class of the list of classes enables an instance of the class to maintain at least one of a state and a behavior.

7. The computer-implemented method of claim 1 , wherein the tracked sizes include a number of objects held by at least one field.

8. The computer-implemented method of claim 1 , wherein determining memory leak behavior of the list of classes includes identifying at least one field as exhibiting constant growth behavior in the tracked sizes.

9. The computer-implemented method of claim 1 , further comprising sampling, over the first time interval the second time interval, and the third size interval, the size of a field, each sample being a result including size data for the field.

10. The computer-implemented method of claim 9 , wherein the method further comprises storing information for each class of the list of classes flagging a field in a class of the list of classes as exhibiting the memory leak behavior.

11. A computer program product for managing usage of memory by an application running on a computer, the computer program product being tangibly embodied on a non-transitory computer-readable medium and comprising instructions that, when executed by at least one processor, are configured to:

perform a first sampling of size data of classes of the application over a first time interval;

determine a list of classes that show a memory leak behavior based on the first sampling of size data;

store the list of classes suspected of the memory leak behavior during a first wait interval;

following the wait interval, perform a second sampling of size data of the list of classes over a second time interval;

determine the memory leak behavior of the list of classes, based on a comparison of the first sampling of size data and the second sampling of size data, the memory leak behavior indicating either a growing trend of at least one memory leak metric, or a decreasing trend of the at least one memory leak metric;

select a second wait interval that is shorter than the first wait interval when the memory leak behavior indicates the growing trend, or to select a second wait interval that is longer than the first wait interval when the memory leak behavior indicates the decreasing trend;

store the list of classes during the second wait interval;

following the second wait interval, perform a third sampling of size data of the list of classes over a third time interval; and

determine updated memory leak behavior of the list of classes, based on the second sampling of size data and the third sampling of size data.

12. The computer program product of claim 11 , wherein the each class of the list of classes includes at least one of a static field and a non-static field.

13. The computer program product of claim 11 , wherein at least one field included in each class of the list of classes enables an instance of the class to maintain at least one of a state and a behavior.

14. The computer program product of claim 11 , wherein the tracked sizes includes a number of objects held by at least one field.

15. The computer program product of claim 11 , wherein the instructions configured to determine memory leak behavior of the list of classes include instructions that, when executed by at least one processor, are configured to identify at least one field as exhibiting constant growth behavior in the tracked sizes.

16. The computer program product of claim 11 , wherein the instructions configured to determine memory leak behavior of the list of classes include instructions that, when executed by at least one processor, are configured to sample, over the first time interval and the second time interval, the size of at least one field, each sample being a result including size data for the at least one field.

17. The computer program product of claim 16 , wherein the instructions, when executed by at least one processor, are further configured to store information for each class of the list of classes flagging a field in a class of the list of classes as exhibiting the memory leak behavior.

18. A system for managing usage of memory by an application running on a computer, the system including instructions stored on a non-transitory computer readable storage medium and executable by at least one processor, the system comprising:

a polling mechanism configured to perform a first sampling of size data of classes of the application over a first time interval, and, following a first wait interval, performing a second sampling of size data of the list of classes over a second time interval;

a storage handler configured to store the list of classes suspected of memory leak behavior during the first wait interval; and

an algorithm handler configured to determine the memory leak behavior, based on a comparison of the first sampling of size data and the second sampling of size data, the memory leak behavior indicating either a growing trend of at least one memory leak metric, or a decreasing trend of the at least one memory leak metric,

wherein the polling mechanism is further configured to select a second wait interval that is shorter than the first wait interval when the memory leak behavior indicates the growing trend, or to select a second wait interval that is longer than the first wait interval when the memory leak behavior indicates the decreasing trend,

the storage handler is further configured to store the list of classes during the second wait interval;

following the second wait interval, the polling mechanism is further configured to perform a third sampling of size data of the list of classes over a third time interval; and

the algorithm handler is further configured to determine updated memory leak behavior of the list of classes, based on the second sampling of size data and the third sampling of size data.

19. The system of claim 18 , wherein each class of the list of classes includes at least one of a static field and a non-static field.

20. The system of claim 18 , wherein at least one field included in each class of the list of classes enables an instance of the classes to maintain at least one of a state and a behavior.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0231 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2015
From: KOMISSAR, GILAD A.; KOREN, EYAL; DAFNER, ASAF
To: BMC SOFTWARE, INC.
Reel/Frame 035103/0982 →