IP Library Granted Patent US 9,405,699
Granted Patent B1
US 9,405,699 · App. 14/472,329 · Granted Aug 2, 2016

Systems and methods for optimizing computer performance

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,405,699
App. No.
14/472,329
Granted
Aug 2, 2016
Kind
B1
Abstract

In one embodiment, a method includes initiating execution of an application, the application utilizing a hash table data structure to map a plurality of keys to a plurality of values. The method further includes, the application checking a memory for a cached hash table capacity indicator from a previous run of the application. In addition, the method includes, responsive to no cached hash table capacity indicator being found in the memory: creating a first hash table with an initial capacity; populating the first hash table with a plurality of runtime entries; determining an improved hash table capacity based, at least in part, on a quantity of the plurality of runtime entries; creating a second hash table with the improved hash table capacity; copying the plurality of runtime entries to the second hash table; and the application using the second hash table in place of the first hash table.

Claims (73)

1. A method comprising, by a computer system comprising computer hardware:

initiating execution of an application in an execution environment of the computer system, the application utilizing a hash table data structure to map a plurality of keys to a plurality of values;

during the execution, the application checking a memory for a cached hash table capacity indicator from a previous run of the application in the execution environment;

responsive to no cached hash table capacity indicator being found in the memory:

creating a first hash table with an initial capacity;

populating the first hash table with a plurality of runtime entries;

determining an improved hash table capacity based, at least in part, on a quantity of the plurality of runtime entries, wherein the improved hash table capacity is a reduced capacity relative to the initial capacity;

creating a second hash table with the improved hash table capacity;

copying the plurality of runtime entries to the second hash table; and

the application using the second hash table in place of the first hash table.

2. The method of claim 1 , comprising storing an indicator of the improved hash table capacity in the memory.

3. The method of claim 2 , comprising updating the stored indicator during the execution of the application.

4. The method of claim 1 , wherein the stored indicator comprises the improved hash table capacity.

5. The method of claim 1 , comprising, responsive to at least one cached hash table capacity indicator being found in the memory:

creating a hash table with a capacity that is based, at least in part, on the at least one cached hash table capacity indicator; and

the application using the hash table during the execution.

6. The method of claim 1 , comprising:

initiating a subsequent execution of the application in the execution environment;

during the subsequent execution, checking the memory for a cached hash table capacity indicator from a previous run of the application in the execution environment; and

responsive to the indicator of the improved hash table capacity being found in the memory:

creating a hash table with the improved hash table capacity; and

the application using the hash table during the subsequent execution.

7. The method of claim 1 , wherein:

the application comprises an agent that instruments classes of a target computer program; and

the plurality of runtime entries comprise an entry for each class.

8. An information handling system comprising:

a processing unit, wherein the processing unit is operable to implement a method comprising:

initiating execution of an application in an execution environment of the information handling system, the application utilizing a hash table data structure to map a plurality of keys to a plurality of values;

during the execution, the application checking a memory for a cached hash table capacity indicator from a previous run of the application in the execution environment;

responsive to no cached hash table capacity indicator being found in the memory:

creating a first hash table with an initial capacity;

populating the first hash table with a plurality of runtime entries;

determining an improved hash table capacity based, at least in part, on a quantity of the plurality of runtime entries, wherein the improved hash table capacity is a reduced capacity relative to the initial capacity;

creating a second hash table with the improved hash table capacity;

copying the plurality of runtime entries to the second hash table; and

the application using the second hash table in place of the first hash table.

9. The information handling system of claim 8 , the method comprising storing an indicator of the improved hash table capacity in the memory.

10. The information handling system of claim 9 , the method comprising updating the stored indicator during the execution of the application.

11. The information handling system of claim 8 , wherein the stored indicator comprises the improved hash table capacity.

12. The information handling system of claim 8 , the method comprising, responsive to at least one cached hash table capacity indicator being found in the memory:

creating a hash table with a capacity that is based, at least in part, on the at least one cached hash table capacity indicator; and

the application using the hash table during the execution.

13. The information handling system of claim 8 , the method comprising:

initiating a subsequent execution of the application in the execution environment;

during the subsequent execution, checking the memory for a cached hash table capacity indicator from a previous run of the application in the execution environment; and

responsive to the indicator of the improved hash table capacity being found in the memory:

creating a hash table with the improved hash table capacity; and

the application using the hash table during the subsequent execution.

14. The information handling system of claim 8 , wherein:

the application comprises an agent that instruments classes of a target computer program; and

the plurality of runtime entries comprise an entry for each class.

15. A computer-program product comprising a non-transitory computer-usable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed to implement a method comprising:

initiating execution of an application in an execution environment, the application utilizing a hash table data structure to map a plurality of keys to a plurality of values;

during the execution, the application checking a memory for a cached hash table capacity indicator from a previous run of the application in the execution environment;

responsive to no cached hash table capacity indicator being found in the memory:

creating a first hash table with an initial capacity;

populating the first hash table with a plurality of runtime entries;

determining an improved hash table capacity based, at least in part, on a quantity of the plurality of runtime entries, wherein the improved hash table capacity is a reduced capacity relative to the initial capacity;

creating a second hash table with the improved hash table capacity;

copying the plurality of runtime entries to the second hash table; and

the application using the second hash table in place of the first hash table.

16. The computer-program product of claim 15 , the method comprising storing an indicator of the improved hash table capacity in the memory.

17. The computer-program product of claim 16 , the method comprising updating the stored indicator during the execution of the application.

18. The computer-program product of claim 15 , wherein the stored indicator comprises the improved hash table capacity.

19. The computer-program product of claim 15 , the method comprising, responsive to at least one cached hash table capacity indicator being found in the memory:

creating a hash table with a capacity that is based, at least in part, on the at least one cached hash table capacity indicator; and

the application using the hash table during the execution.

20. The computer-program product of claim 15 , the method comprising:

initiating a subsequent execution of the application in the execution environment;

during the subsequent execution, checking the memory for a cached hash table capacity indicator from a previous run of the application in the execution environment; and

responsive to the indicator of the improved hash table capacity being found in the memory:

creating a hash table with the improved hash table capacity; and

the application using the hash table during the subsequent execution.

Assignments (26)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CHANGE OF NAME Recorded Dec 6, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044800/0848 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
RELEASE OF REEL 034590 FRAME 0731 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL PRODUCTS L.P.
Reel/Frame 040027/0070 →
RELEASE OF REEL 034591 FRAME 0391 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL PRODUCTS L.P.
Reel/Frame 040027/0719 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF REEL 034590 FRAME 0696 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL PRODUCTS L.P.
Reel/Frame 040016/0964 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Dec 10, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 034591/0391 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 10, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 034590/0731 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Dec 10, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 034590/0696 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2014
From: FELDMANN, CHRISTINE; TYLER, GORDON H.
To: DELL SOFTWARE INC.
Reel/Frame 033638/0926 →