IP Library Granted Patent US 9,110,780
Granted Patent B2
US 9,110,780 · App. 13/746,273 · Granted Aug 18, 2015

Memory utilization analysis

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 9,110,780
App. No.
13/746,273
Granted
Aug 18, 2015
Kind
B2
Abstract

The performance of a monitored system is profiled based on sampling a portion of its operations. In one embodiment, the monitored system allocates memory for objects created as instances of classes and automatically performs regular garbage collection to reclaim memory. A variety of sampling techniques are used to minimize the impact on the performance of the monitored system. Characteristic memory utilization patterns can then be estimated for classes based on the samples. The patterns may be presented to a user for review and analysis. Characteristics of the monitored system's performance may be presented in an interactive interface that allows the user to trace the cause of the presented memory utilization patterns, and provides statistics regarding memory allocation and release to guide the user in this analysis.

Claims (32)

1. A method of characterizing the performance of an application running on a monitored computer system, wherein the application during operation allocates and releases memory of the computer system for objects created as instances of classes used by the application, wherein said application regularly performs garbage collection to reclaim memory, said method comprising:

monitoring memory allocations as they occur in the monitored computer system that is running the application;

sampling a portion of the memory allocations for objects created as instances of the classes used by the application;

determining patterns of memory utilization by the classes based on the sampled memory allocations and whether the sampled memory allocations have been released; and

providing information indicating memory utilization patterns by the classes for output on a display.

2. The method of claim 1 , wherein monitoring memory allocations comprises receiving an input indicating at least one class selected for monitoring.

3. The method of claim 1 , wherein monitoring memory allocations comprises:

determining a set of predominate classes used by the application; and

selecting at least one of the predominate classes for monitoring.

4. The method of claim 1 , wherein sampling a portion of the memory allocations comprises recording an identification of a location in the application from which the sampled memory allocation was initiated.

5. The method of claim 1 , wherein sampling comprises determining the portion of memory allocations based on a frequency of memory allocations used by a class.

6. The method of claim 1 , wherein sampling comprises determining the portion of memory allocations based on the size of the memory allocation.

7. The method of claim 1 , wherein determining patterns of memory utilization by the classes comprises identifying at least one memory leak by a plurality of objects in a class.

8. The method of claim 1 , wherein providing information indicating memory utilization patterns by the classes for output on the display comprises providing information indicating a hierarchy of classes used by the application.

9. The method of claim 1 , wherein providing information indicating memory utilization patterns by the classes for output on the display comprises:

grouping objects of the same class into a single node of a tree displayed on the display.

10. The method of claim 9 , wherein grouping the objects of the same class comprises grouping sibling objects of the same class.

11. The method of claim 9 , wherein grouping the objects of the same class comprises grouping descendant objects of the same class.

12. The method of claim 1 , wherein providing information indicating memory utilization patterns comprises providing information indicating an amount of allocated memory that each class represents.

13. A computer system configured to characterize the performance of an application running on a monitored computer system, wherein the application during operation on the monitored computer system allocates and releases memory of the monitored computer system for objects created as instances of classes used by the application, wherein said application regularly performs garbage collection to reclaim memory, said computer system comprising:

a processor configured by executable program code for monitoring memory allocations as they occur in the monitored computer system that is running the application, sampling a portion of the memory allocations for objects created as instances of the classes used by the application, and determining patterns of memory utilization by the classes based on the sampled memory allocations and whether the sampled memory allocations have been released; and

a display, coupled to the processor, providing a graphical user interface indicating memory utilization patterns by the classes.

14. The system of claim 13 , wherein the graphical user interface is configured to receive an input indicating at least one class selected for monitoring.

15. The system of claim 13 , wherein the processor is configured by executable program code to record an identification of a location in the application from which the sampled memory allocation was initiated.

16. The system of claim 13 , wherein the processor is configured by executable program code to determine the portion of memory allocations based on a frequency of memory allocations used by a class.

17. The system of claim 13 , wherein the processor is configured by executable program code to identify at least one memory leak by a plurality of objects in a class.

18. The system of claim 13 , wherein the graphical user interface displays information indicating a hierarchy of classes used by the application.

19. The system of claim 13 , wherein the graphical user interface displays a tree that groups objects of the same class into a single node of the tree.

20. The system of claim 13 , wherein the graphical user interface displays a tree that displays objects of the same class as a group of sibling objects.

21. The system of claim 20 , wherein the graphical user interface displays descendant objects of the same class as a single group.

22. The system of claim 13 , wherein the graphical user interface displays information indicating an amount of allocated memory that each class represents.

23. The system of claim 13 , wherein the graphical user interface displays information indicating a location in the application from which the memory allocation was initiated.

Assignments (17)
RELEASE OF SECURITY INTEREST Recorded Aug 11, 2023
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC; RIVERBED HOLDINGS, INC.
Reel/Frame 064673/0739 →
CHANGE OF NAME Recorded Feb 10, 2022
From: RIVERBED TECHNOLOGY, INC.
To: RIVERBED TECHNOLOGY LLC
Reel/Frame 059009/0906 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0108 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0046 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0169 →
SECURITY INTEREST Recorded Dec 10, 2021
From: RIVERBED TECHNOLOGY LLC (FORMERLY RIVERBED TECHNOLOGY, INC.); ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
Reel/Frame 058486/0216 →
PATENT SECURITY AGREEMENT Recorded Oct 27, 2021
From: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 057943/0386 →
PATENT SECURITY AGREEMENT SUPPLEMENT - SECOND LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 057810/0559 →
PATENT SECURITY AGREEMENT SUPPLEMENT - FIRST LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 057810/0502 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORED AT REEL 056397, FRAME 0750 Recorded Oct 13, 2021
From: MACQUARIE CAPITAL FUNDING LLC
To: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 057983/0356 →
SECURITY INTEREST Recorded May 26, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MACQUARIE CAPITAL FUNDING LLC
Reel/Frame 056397/0750 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2020
From: RIVERBED TECHNOLOGY, INC.
To: ATERNITY LLC
Reel/Frame 054778/0540 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY NAME PREVIOUSLY RECORDED ON REEL 035521 FRAME 0069. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST IN PATENTS. Recorded Jun 2, 2015
From: JPMORGAN CHASE BANK, N.A.
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035807/0680 →
SECURITY INTEREST Recorded May 1, 2015
From: RIVERBED TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 035561/0363 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Apr 28, 2015
From: BARCLAYS BANK PLC
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035521/0069 →
PATENT SECURITY AGREEMENT Recorded Dec 27, 2013
From: RIVERBED TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 032421/0162 →
RELEASE OF PATENT SECURITY INTEREST Recorded Dec 26, 2013
From: MORGAN STANLEY & CO. LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 032113/0425 →