IP Library Granted Patent US 9,032,254
Granted Patent B2
US 9,032,254 · App. 13/628,804 · Granted May 12, 2015

Real time monitoring of computer for determining speed and energy consumption of various processes

Inventors: Eden Shochat (Herzliya, IL); David Elkind (Beit Shemesh, IL)
Assignee: Aternity Information Systems Ltd.
G06F11/3466G06F11/0715G06F11/079G06F11/3409G06F11/3612G06F2201/86G06F2201/875G06F2201/88Y02B60/165
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,032,254
App. No.
13/628,804
Filed
Sep 27, 2012
Granted
May 12, 2015
Kind
B2
Examiner
TRUONG, LOAN
Art Unit
2114
USPC
714/38.1
Abstract

The presently disclosed subject matter includes a system and method which enable to identify one or more causes for excessive energy consumption in a computer executing one or more processes. Information indicating that consumption of a computer-resource of at least one of said processes is greater than a predefined threshold is obtained and one or more threads of said at least one process which are in running state are identified. Thread performance information of at least one thread in running state is collected and used for identifying one or more functions that are the cause for said state of the respective thread. The identified functions are associated with their respective modules in order to identify one or more modules of said process, which are the cause for said excessive energy consumption.

Claims (41)

1. A system comprising at least one processor operatively associated with a computer memory, the processor being configured to identify one or more causes for excessive energy consumption in a computer executing one or more processes, each of said one or more processes comprising one or more threads, the processor being operable to:

obtain information indicating that consumption of a computer-resource of at least one of said processes is greater than a predefined threshold;

detect states of one or more threads of said at least one process, and identify at least one thread in running state;

collect thread performance information of said at least one thread in running state, said performance information including data indicative of a performance of different functions of said process;

identify based on said performance information, one or more functions which are the cause for said state;

associate between said identified functions and their respective modules; and identify, based on at least, said performance information of said one or more functions and on data related to their associated respective modules, one or more modules from among said modules, which are the cause for said excessive energy consumption.

2. The system of claim 1 wherein said computer resource is one or more of: CPU resources, computer disk resources, network resources.

3. The system of claim 1 , wherein said processor is configured to periodically poll said one or more threads of the one or more processes, in order to detect said states.

4. The system of claim 1 , also including: a data repository for storing a configured for storing said thread performance information.

5. The system of claim 1 , wherein said one or more threads are UI threads.

6. The system of claim 1 wherein said processor is configured to utilize hooking of voluntary API calls in order to collect said performance information.

7. The system of claim 6 , wherein said one or more threads are UI threads.

8. The system of claim 1 , wherein said processor is further operable to utilize a knowledge base to store information for translating said performance information into data indicative of one or more functions and respective modules which are the cause for said excessive energy consumption.

9. The system of claim 8 , wherein said information stored in said knowledge base includes one or more of: historical, cross-system module baseline information.

10. The system of claim 1 , wherein said processor is configured to utilize an Operating System maintained thread state store in order to detect states of said one or more threads.

11. The system of claim 1 , wherein said performance information is normalized with respect to time.

12. The system of claim 1 wherein said processor is configured to intercept a respective process launch event of said one or more processes, thereby enable to detect states of said one or more threads.

13. The system of claim 1 wherein said processor is configured to poll call stacks of said at least one thread in running state, in order to collect said performance information.

14. The system of claim 13 wherein said processor is configured to count the number of times a function call of each given function is identified in said call stack and identify one or more functions with the highest counts as functions which are the cause for said state.

15. The system of claim 1 wherein said processor is configured to utilize heuristics in order to identify, based on said performance information, one or more functions and their respective modules from among said modules, which are the cause for said excessive energy consumption.

16. The system of claim 1 , wherein said processor is configured to utilize a data storage containing data mapping between functions and respective modules in order to associate between said functions and their respective modules.

17. A method of identifying one or more causes for excessive energy consumption in a computer executing one or more processes, each of said one or more processes comprising one or more threads, the method comprising:

obtaining information indicating that consumption of a computer-resource of at least one of said processes is greater than a predefined threshold;

detecting states of one or more threads of said at least one process, and identify at least one thread in a running state;

collecting thread performance information of said at least one thread in running state, said performance information including data indicative of a performance of different functions of said process;

identifying based on said performance information, one or more functions which are the cause for said state;

associating between said identified functions and their respective modules; and identify, based on at least, said performance information of said one or more functions and on data related to their associated respective modules, one or more modules from among said modules, which are the cause for said excessive energy consumption.

18. The method according to claim 17 further comprising: periodically polling said one or more threads of the one or more processes, in order to detect said states.

19. The method according to claim 17 further comprising: utilizing a knowledge base to store information for translating said performance information into data indicative of one or more functions and respective modules which are the cause said excessive energy consumption.

20. The method according to claim 17 further comprising: normalizing said performance information with respect to time.

21. The method according to claim 17 further comprising: intercepting a respective process launch event of said one or more processes, thereby enable to detect states of said one or more threads.

22. The method according to claim 17 further comprising: polling call stacks of said at least one thread in running state, in order to collect said performance information.

23. The method according to claim 22 further comprising: counting the number of times a function call of each given function is identified in said call stack and identify one or more functions with the highest counts as functions which are the cause for said state.

24. The method according to claim 17 further comprising: utilizing heuristics in order to identify, based on said performance information, one or more functions and their respective modules from among said modules, which are the cause for said excessive energy consumption.

25. The method according to claim 17 further comprising: utilizing a data storage containing data mapping between functions and respective modules in order to associate between said functions and their respective modules.

26. A non-transitory program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps of a method of identifying one or more causes for excessive energy consumption in a computer executing one or more processes, each of said one or more processes comprising one or more threads, the method comprising:

obtaining information indicating that consumption of a computer resource of at least one of said processes is greater than a predefined threshold;

detecting states of one or more threads of said at least one process, and identify at least one thread in a running state;

collecting thread performance information of said at least one thread in running state, said performance information including data indicative of a performance of different functions of said process;

identifying based on said performance information, one or more functions which are the cause for said state;

associating between said identified functions and their respective modules; and identify, based on at least, said performance information of said one or more functions and on data related to their associated respective modules, one or more modules from among said modules, which are the cause for said excessive energy consumption.

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: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0169 →
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 →
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 - 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 →
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 →
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 →
PATENT SECURITY AGREEMENT Recorded Jul 10, 2019
From: RIVERBED TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 049720/0808 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY RECORDED AT REEL 037470/FRAME 0528 Recorded Sep 14, 2017
From: KREOS CAPITAL V (EXPERT FUND) L.P.
To: ATERNITY INFORMATION SYSTEMS LTD.
Reel/Frame 043865/0070 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2017
From: ATERNITY INFORMATION SYSTEMS LTD.
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 041361/0892 →
SECURITY INTEREST Recorded Jan 13, 2016
From: ATERNITY INFORMATION SYSTEMS LTD.
To: KREOS CAPITAL V (EXPERT FUND) L.P.
Reel/Frame 037470/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2012
From: SHOCHAT, EDEN; ELKIND, DAVID
To: ATERNITY INFORMATION SYSTEMS LTD.
Reel/Frame 029328/0182 →
Continuity (3)
Continuation In Part 12608451 · Oct 29, 2009
Provisional Application 61109419 · Oct 29, 2008
Related Publication 20130024731A1 · Jan 24, 2013