IP Library Granted Patent US 9,367,428
Granted Patent B2
US 9,367,428 · App. 14/512,653 · Granted Jun 14, 2016

Transparent performance inference of whole software layers and context-sensitive performance debugging

Inventors: Junghwan Rhee (Princeton, NJ); Hui Zhang (Princeton Junction, NJ); Nipun Arora (Plainsboro, NJ); Guofei Jiang (Princeton, NJ); Chung Hwan Kim (West Lafayette, IN)
Assignee: NEC Corporation
G06F11/3636
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,367,428
App. No.
14/512,653
Granted
Jun 14, 2016
Kind
B2
Abstract

Methods and systems for performance inference include inferring an internal application status based on a unified call stack trace that includes both user and kernel information by inferring user function instances. A calling context encoding is generated that includes information regarding function calling paths. Application performance is analyzed based on the encoded calling contexts. The analysis includes performing a top-down latency breakdown and ranking calling contexts according to how costly each function calling path is.

Claims (20)

1. A method for performance inference, comprising:

inferring an internal application status based on a unified call stack trace that includes both user and kernel information by inferring latencies for individual function calls in user function instances;

generating a calling context encoding that includes information regarding function calling paths and represents each calling context as a distinct integer; and

analyzing application performance based on the encoded calling contexts, comprising:

performing a top-down latency breakdown, comprising:

estimating a total running time of each function in a stack trace; and

excluding running times attributable to later-starting, concurrently running functions to determine a latency attributable to each function;

annotating the calling context encoding with inferred performance information; and

ranking calling contexts according to how costly each function calling path is.

2. The method of claim 1 , wherein estimating a total running time comprises finding a difference between a first stack trace in which a function appears and a first stack trace in which the function no longer appears.

3. The method of claim 1 , wherein estimating a total running time comprises finding a difference between a first stack trace in which a function appears and a last uninterrupted stack trace in which the function appears.

4. The method of claim 1 , wherein ranking calling contexts comprises ranking according to total cost for each function calling path.

5. The method of claim 1 , wherein ranking calling contexts comprises ranking according to a difference in latency between two input workloads.

6. A system for performance inference, comprising:

an inference module comprising a hardware processor configured to infer an internal application status based on a unified call stack trace that includes both user and kernel information by inferring latencies for individual function calls in user function instances, to generate a calling context encoding that includes information regarding function calling paths, and to annotate the calling context encoding with inferred performance information; and

a performance analysis module configured to analyze application performance based on the encoded calling contexts by estimating a total running time of each function in a stack trace and excluding running times attributable to later-starting, concurrently running functions to determine a latency attributable to each function in a top-down latency breakdown and by ranking calling contexts according to how costly each function calling path is.

7. The system of claim 6 , wherein the performance analysis module is further configured to find a difference between a first stack trace in which a function appears and a first stack trace in which the function no longer appears.

8. The system of claim 6 , wherein the performance analysis module is further configured to find a difference between a first stack trace in which a function appears and a last uninterrupted stack trace in which the function appears.

9. The system of claim 6 , wherein the performance analysis module is further configured to rank calling contexts according to total cost for each function calling path.

10. The system of claim 6 , wherein the performance analysis module is further configured to rank calling contexts according to a difference in latency between two input workloads.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2016
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 038556/0206 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2014
From: RHEE, JUNGHWAN; ZHANG, HUI; ARORA, NIPUN; JIANG, GUOFEI; KIM, CHUNG HWAN
To: NEC LABORATORIES AMERICA, INC.
Reel/Frame 033937/0352 →
Continuity (2)
Provisional Application 61890398 · Oct 14, 2013
Related Publication 20150106794A1 · Apr 16, 2015