IP Library Granted Patent US 8,307,246
Granted Patent B2
US 8,307,246 · App. 12/608,451 · Granted Nov 6, 2012

Real time monitoring of computer for determining speed of various processes

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 8,307,246
App. No.
12/608,451
Granted
Nov 6, 2012
Kind
B2
Abstract

A system is disclosed for identifying one or more causes of a computer executing one or more processes running slowly, the system includes: apparatus for detecting states of one or more threads of the one or more processes; apparatus for identifying one or more of said one or more processes that have one or more threads with wait states that occur above a threshold to indicate which modules within a process or processes is causing said computer to run slowly. In one embodiment the system as the apparatus for detecting states periodically polls the one or more threads of the processes. The system can also include a data structure to store the states of each of said one or more threads each time said thread is polled. The system can be one in which one or more threads are UI threads.

Claims (30)

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 a slowdown of a computer executing one or more processes, each of said one or more processes comprising one or more threads, the processor being operable to:

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

collect thread performance information of said at least one thread in a wait 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 slowdown;

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 slowdown in said computer.

2. 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.

3. The system of claim 1 , also including: a data structure configured to store said thread performance information.

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

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

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

7. 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 slowdown.

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

9. 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.

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

11. 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.

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

13. 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 slowdown in said computer.

14. 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.

15. A method for identifying one or more causes for a slowdown of a computer executing one or more processes, each of said one or more processes comprising one or more threads, the method comprising:

detecting states of said one or more threads, and identifying at least one thread in a wait state;

collecting thread performance information of said at least one thread in wait state, said performance information includes data being indicative of a performance of different functions of said process;

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

associating between said identified functions and their respective modules; and

identifying, based on at least said performance information of said one or more functions and on data related to their associated related modules, one or more modules from among said modules, which are the cause for said slowdown in said computer.

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

detecting states of said one or more threads, and identifying at least one thread in a wait state;

collecting thread performance information of said at least one thread in wait state, said performance information includes data being indicative of a performance of different modulesfunctions of said process;, which are associated with said at least one thread in a wait state; and

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

associating between said identified functions and their respective modules; and

identifying, based on at least said performance information of said one or more functions and on data related to their associated related modules, one or more modules from among said modules, which are the cause for said slowdown in said computer.

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 Feb 16, 2012
From: SHOCHAT, EDEN; ELKIND, DAVID
To: ATERNITY INFORMATION SYSTEMS LTD.
Reel/Frame 027716/0021 →