IP Library Granted Patent US 11,275,668
Granted Patent B2
US 11,275,668 · App. 16/989,558 · Granted Mar 15, 2022

Dynamically enhancing the performance of a foreground application

Inventor: Farzad Khosrowpour (Pflugerville, TX)
Assignee: Dell Products L.P.
G06F11/3466G06F9/5027G06F11/302G06F11/3072G06F11/3409
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,275,668
App. No.
16/989,558
Granted
Mar 15, 2022
Kind
B2
Abstract

A performance enhancing solution can be executed on a computing device to detect changes in the foreground application. When the foreground application changes, the performance enhancing solution can adjust the allocation of system resources to running applications to thereby enhance the performance of the foreground application.

Claims (64)

1. A method for dynamically enhancing the performance of a foreground application, the method comprising:

detecting that a first application of a plurality of running applications has become the foreground application;

in response to detecting that the first application has become the foreground application, determining whether the first application is included in a list of target applications; and

in response to determining that the first application is included in the list of target applications, adjusting an allocation of system resources to the plurality of running applications to enhance performance of the first application while the first application is the foreground application including one or more of:

adjusting a priority at which one or more of the plurality of running applications are selected for slices of CPU time;

adjusting a processor affinity of one or more of the plurality of running applications; or

adjusting an I/O priority of one or more of the plurality of running applications.

2. The method of claim 1 , wherein detecting that the first application has become the foreground application comprises determining that another application that is also included in the list of target applications is no longer the foreground application.

3. The method of claim 1 , wherein detecting that the first application has become the foreground application comprises determining that a window that has focus is owned by the first application.

4. The method of claim 1 , wherein adjusting the allocation of system resources to the plurality of running applications to enhance the performance of the first application while the first application is the foreground application comprises:

increasing the allocation of system resources to the first application.

5. The method of claim 4 , wherein adjusting the allocation of system resources to the plurality of running applications to enhance the performance of the first application while the first application is the foreground application further comprises:

decreasing the allocation of system resources to one or more other applications of the plurality of running applications.

6. The method of claim 1 , wherein adjusting the allocation of system resources to the plurality of running applications to enhance the performance of the first application while the first application is the foreground application comprises:

decreasing the allocation of system resources to one or more other applications of the plurality of running applications.

7. The method of claim 1 , wherein adjusting the allocation of system resources to the plurality of running applications to enhance the performance of the first application while the first application is the foreground application comprises two or more of:

adjusting a priority at which one or more of the plurality of running applications are selected for slices of CPU time;

adjusting a processor affinity of one or more of the plurality of running applications; or

adjusting an I/O priority of one or more of the plurality of running applications.

8. The method of claim 1 , wherein the allocation of system resources is adjusted based on one or more policies.

9. The method of claim 1 , wherein determining whether the first application is included in the list of target applications comprises accessing a policy.

10. The method of claim 9 , further comprising:

identifying a plurality of most used applications; and

modifying the policy to include the most used applications in the list of target applications.

11. The method of claim 1 , further comprising:

detecting that the first application is no longer the foreground application; and

adjusting the allocation of system resources to the plurality of running applications to no longer enhance the performance of the first application.

12. The method of claim 11 , wherein detecting that the first application is no longer the foreground application comprises detecting that a second application of the plurality of running applications is the foreground application and is included in the list of target applications; and

wherein adjusting the allocation of system resources to the plurality of running applications to no longer enhance the performance of the first application comprises adjusting the allocation of system resources to the plurality of running applications to enhance the performance of the second application while the second application is the foreground application.

13. The method of claim 1 , further comprising:

detecting that a second application of the plurality of running applications is included in the list of target applications; and

in response to determining that the second application is included in the list of target applications, adjusting an allocation of system resources to the plurality of running applications to enhance performance of the second application when the second application is not the foreground application.

14. One or more computer storage media storing computer executable instructions which when executed on a computing device implement a method for dynamically enhancing the performance of a foreground application, the method comprising:

monitoring for changes in the foreground application;

upon detecting that the foreground application has changed, determining that the foreground application is included in a list of target applications; and

in response to determining that the foreground application is included in the list of target applications, adjusting an allocation of system resources to a plurality of running applications to enhance performance of the foreground application including one or more of:

adjusting a priority at which one or more of the plurality of running applications are selected for slices of CPU time;

adjusting a processor affinity of one or more of the plurality of running applications; or

adjusting an I/O priority of one or more of the plurality of running applications.

15. The computer storage media of claim 14 , wherein determining that the foreground application is included in the list of target applications comprises accessing a policy.

16. The computer storage media of claim 14 , wherein adjusting the allocation of system resources to the plurality of running applications to enhance the performance of the foreground application comprises two or more of:

adjusting a priority at which one or more of the plurality of running applications are selected for slices of CPU time;

adjusting a processor affinity of one or more of the plurality of running applications; or

adjusting an I/O priority of one or more of the plurality of running applications.

17. The computer storage media of claim 14 , wherein adjusting the allocation of system resources to the plurality of running applications to enhance the performance of the foreground application comprises one or both of:

increasing an allocation of system resources to the foreground application; or

decreasing an allocation of system resources to one or more other applications of the plurality of running applications.

18. A computing device comprising:

system resources including one or more processors;

an operating system;

a performance enhancing solution; and

a plurality of running applications;

wherein the performance enhancing solution is configured to:

detect that a first application of the plurality of applications has become a foreground application;

in response to detecting that the first application has become the foreground application, determine whether the first application is included in a list of target applications; and

in response to determining that the first application is included in the list of target applications, adjust an allocation of the system resources to the plurality of running applications to enhance performance of the first application while the first application is the foreground application;

wherein detecting that the first application has become the foreground application comprises determining that another application that is also included in the list of target applications is no longer the foreground application.

19. The computing device of claim 18 , wherein adjusting the allocation of system resources to the plurality of running applications to enhance the performance of the first application while the first application is the foreground application comprises one or more of:

adjusting a priority at which one or more of the plurality of running applications are selected for slices of CPU time;

adjusting a processor affinity of one or more of the plurality of running applications; or

adjusting an I/O priority of one or more of the plurality of running applications.

20. The computing device of claim 18 , wherein adjusting the allocation of the system resources to the plurality of running applications comprises one or both of:

increasing an allocation of system resources to the first application when the first application is the foreground application; or

decreasing an allocation of system resources to one or more other applications of the plurality of running applications when the first application is the foreground application.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2020
From: KHOSROWPOUR, FARZAD
To: DELL PRODUCTS L.P.
Reel/Frame 053447/0877 →