IP Library Granted Patent US 8,495,577
Granted Patent B2
US 8,495,577 · App. 12/176,325 · Granted Jul 23, 2013

Selective monitoring of software applications

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,495,577
App. No.
12/176,325
Granted
Jul 23, 2013
Kind
B2
Abstract

An application monitoring system autonomously selects routines for performance monitoring based on characteristics of the content of the routines. These characteristics are preferably related to aspects of routines that are likely candidates for performance improvement, such as repetitive loops, event waits, synchronized blocks, and on. Routines that appear to be relatively un-improvable are excluded from initial monitoring, and routines that are subsequently determined to be relatively un-improvable, based on performance analysis and/or user feedback, are excluded from future monitoring. The determination of each routine's candidacy for monitoring is maintained over time, so that each subsequent monitoring session need not repeat the determinations. Changed routines are routinely re-monitored and/or re-assessed to affirm or modify the routine's candidacy for subsequent monitoring.

Claims (29)

1. A monitoring system comprising: a static analyzer that is embodied on a machine and configured to assess routines within an application code to provide a monitoring candidacy measure based on a characteristic of each routine's content that is correlated to a potential for performance improvement, each routine's content including a sequence of instructions, a monitoring selector that is embodied on the machine and configured to: identify select routines to be monitored based on the candidacy measures, and augment the application code with monitoring code that facilitates collection of performance data for each select routine, and a non-transitory memory that is configured to store the augmented application code; wherein: the candidacy measure is retained between executions of the application, the monitoring code is configured to allow selective bypassing of the collection of performance data for each select routine, based on an enabling parameter associated with the select routine, and the monitoring selector is configured to selectively control the enabling parameter of each select routine based on changes to the candidacy measures.

2. The monitoring system of claim 1 , wherein the characteristic of each routine is based on whether the content of the routine includes a loop, calls to other routines, a wait for an event, or a synchronized block.

3. The monitoring system of claim 1 , wherein the static analyzer is configured to only assess routines that have been added or changed since a prior execution of the application.

4. The monitoring system of claim 1 , wherein the performance analyzer modifies the enabling parameter of each select routine that exhibits an average execution time that is below a given threshold.

5. The monitoring system of claim 1 , wherein the performance analyzer modifies the enabling parameter of each select routine that is executed at least a given number of times and exhibits an average execution time that is below a given threshold.

6. The monitoring system of claim 1 , wherein the monitoring code is configured to access the enabling parameters during execution of the augmented code and thereby bypass the collection of performance data for a routine whose enabling parameter is changed during the execution of the augmented code.

7. The monitoring system of claim 1 , including an execution unit that is configured to execute the augmented code and thereby produce the performance data.

8. The monitoring system of claim 1 , including a user interface that facilitates modification of the candidacy measure by a user of the monitoring system.

9. The monitoring system of claim 1 , including a performance analyzer that is configured to modify the candidacy measure based on the performance data for each select routine.

10. A method comprising: assessing routines within an application code to provide a monitoring candidacy measure based on a characteristic of each routine's content that is correlated to a potential for performance improvement, each routine's content including a sequence of instructions, identifying select routines to be monitored based on the candidacy measures,

augmenting the application code with monitoring code that facilitates collection of performance data for each select routine, and

storing the augmented application code in a non-transitory computer readable memory for subsequent execution by a processor; wherein: the candidacy measure is retained between executions of the application, allowing selective bypassing of the collection of performance data for each select routine, based on an enabling parameter associated with the select routine, and selectively controlling the enabling parameter of each select routine based on changes to the candidacy measures.

11. The method of claim 10 , wherein the characteristic of each routine is based on whether the content of the routine includes a loop, calls to other routines, a wait for an event, or a synchronized block.

12. The method of claim 10 , including:

accessing the enabling parameters during execution of the augmented code, and

bypassing the collection of performance data for a routine whose enabling parameter is changed during execution of the augmented code.

13. The method of claim 10 , including executing the augmented code to produce the performance data.

14. The method of claim 13 , including modifying the enabling parameters based on the performance data for each select routine.

15. The method of claim 14 , wherein the modifying of the enabling parameter is based on an average execution time of the select routine.

16. The method of claim 10 , including modifying the candidacy measures based on the performance data for each select routine.

17. The method of claim 10 , including providing a user interface that facilitates modification of the candidacy measures.

18. A non-transitory computer-readable medium that includes a program that, when executed by a processor, causes the processor to: assess routines within an application code to provide a monitoring candidacy measure based on a characteristic of each routine's content that is correlated to a potential for performance improvement, each routine's content including a sequence of instructions, identify select routines to be monitored based on the candidacy measures, augment the application code with monitoring code that facilitates collection of performance data for each select routine, and store the augmented application code in a non-transitory computer readable memory for subsequent execution by a processor; wherein: the candidacy measure is retained between executions of the application, and the program causes the processor to: allow selective bypassing of the collection of performance data for each select routine, based on an enabling parameter associated with the select routine, and selectively control the enabling parameter of each select routine based on changes to the candidacy measures.

19. The medium of claim 18 , wherein the characteristic of each routine is based on whether the content of the routine includes a loop, calls to other routines, a wait for an event, or a synchronized block.

20. The medium of claim 18 , wherein the program causes the processor to: access the enabling parameters during execution of the augmented code, and bypass the collection of performance data for a routine whose enabling parameter is changed during execution of the augmented code.

21. The medium of claim 18 , wherein the program causes the processor to execute the augmented code to produce the performance data.

22. The medium of claim 21 , wherein the program causes the processor to modify the enabling parameters based on the performance data for each select routine.

23. The medium of claim 22 , wherein the program causes the processor to modify the enabling parameter based on an average execution time of the select routine.

24. The medium of claim 18 , wherein the program causes the processor to modify the candidacy measures based on the performance data for each select routine.

25. The medium of claim 18 , wherein the program causes the processor to provide a user interface that facilitates modification of the candidacy measures.

Assignments (2)
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 →
SECURITY INTEREST Recorded May 26, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MACQUARIE CAPITAL FUNDING LLC
Reel/Frame 056397/0750 →