IP Library › Granted Patent US 10,346,292
Granted Patent B2
US 10,346,292 · App. 15/036,338 · Granted Jul 9, 2019

Software component recommendation based on multiple trace runs

Inventors: Tetsuo Seto (Redmond, WA); Russell Krajec (Loveland, CO)
Assignee: Microsoft Technology Licensing, LLC
G06F11/3688G06F8/70G06F11/3409G06F11/3466G06F16/2455G06F11/3428G06F2201/865
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 10,346,292
App. No.
15/036,338
Filed
May 12, 2016
Granted
Jul 9, 2019
Kind
B2
Art Unit
2192
USPC
717/128
Abstract

Recommendations may be generated while calculating performance metrics from multiple uses of a software component. A tracing service may collect trace data from multiple uses of a software component, where each use may be done on different conditions. The performance metric analysis may identify various factors that may affect the performance of a software component, then present those factors to a user in different delivery mechanisms. In one such mechanism, a recommended set of hardware and software configurations may be generated as part of an operational analysis of a software component.

Claims (26)

1. A method performed on at least one computer processor, said method comprising:

receiving a plurality of trace datasets, each of said trace datasets comprising a time series of performance data gathered while monitoring a first software component;

analyzing said plurality of trace datasets to determine a differentiating factor that causes differences between said trace datasets, wherein determining the differentiating factor also includes identifying a set of one or more complementary components that, when executed, either increased or decreased an effectiveness of the first software component when the first software component was being executed; and

presenting said differentiating factor or said set of one or more complementary components to a user.

2. The method of claim 1 , said differences comprising performance differences between said trace datasets.

3. The method of claim 2 , said differentiating factor comprising hardware differences.

4. The method of claim 3 , said differentiating factor further comprising software differences.

5. The method of claim 4 further comprising ranking a plurality of differentiating factors.

6. The method of claim 5 , said performance data comprising resource consumption data.

7. The method of claim 6 , said resource consumption data comprising at least one of a group composed of: processor resource consumption data; memory resource consumption data; and network resource consumption data.

8. The method of claim 6 , said performance data comprising usage data.

9. The method of claim 8 , said usage data comprising at least one of a group composed of: function call counts; and input parameters receives.

10. The method of claim 2 , said first software component being an application.

11. The method of claim 10 , a first trace dataset being gathered while executing said application on a first hardware configuration and a second trace dataset being gathered while executing said application on a second hardware configuration.

12. The method of claim 2 , said first software component being a reusable software component.

13. The method of claim 12 , a first trace dataset being gathered while executing said reusable software component as part of a first application, and a second trace dataset being gathered while executing said application as part of a second application.

14. A system comprising:

a database comprising a plurality of trace datasets, each of said trace datasets being a time series of performance data gathered while monitoring a first software component;

at least one processor; and

an analysis engine operating on said at least one processor, said analysis engine that:

receives a plurality of trace datasets, each of said trace datasets comprising a time series of performance data gathered while monitoring a first software component; and

analyzes said plurality of trace datasets to determine a differentiating factor that causes differences between said trace datasets, wherein determining the differentiating factor also includes identifying a set of one or more complementary components that, when executed, either increased or decreased an effectiveness of the first software component when the first software component was being executed.

15. The system of claim 14 further comprising: an interface that receives a first request and returns said differentiating factor as a response to said first request.

16. The system of claim 15 , said interface being an application programming interface.

17. The system of claim 14 , said first software component being a reusable software component.

18. The system of claim 17 , a first trace dataset being collected while executing a first application using said reusable software component and a second trace dataset being collected while executing a second application using said reusable software component.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2018
From: CONCURIX CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 045859/0289 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2018
From: SETO, TETSUO; KRAJEC, RUSSELL
To: CONCURIX CORPORATION
Reel/Frame 045848/0579 →
Continuity (4)
Provisional Application 61903755 · Nov 13, 2013
Provisional Application 61903762 · Nov 13, 2013
Provisional Application 61903768 · Nov 13, 2013
Related Publication 20160283362A1 · Sep 29, 2016
Cited By (1)
US 12,399,802