IP Library › Granted Patent US 10,503,631
Granted Patent B1
US 10,503,631 · App. 15/665,411 · Granted Dec 10, 2019

Runtime intelligence within an integrated development environment

Inventors: Satish Talluri (San Mateo, CA); Suraj Puvvada (San Francisco, CA); Buchi Reddy Busi Reddy (Sunnyvale, CA); Prudhvi Kumar Chaganti (Sunnyvale, CA)
Assignee: Cisco Technology, Inc.
G06F11/3664G06F8/33G06F11/3612G06F11/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 10,503,631
App. No.
15/665,411
Granted
Dec 10, 2019
Kind
B1
Abstract

In one embodiment, an integrated development environment (IDE) is maintained on a computing device for managing software code for one or more software programs. At the IDE on the computing device, runtime performance information regarding execution of the software code in the IDE is determined, the runtime performance information corresponding to individual portions of the software code. The IDE (or IDE plugin) translates the runtime performance information into user-understandable indications of the runtime performance information, and displays the user-understandable indications of the runtime performance information in a graphical user interface (GUI) when a respective corresponding individual portion of the software code is displayed in the GUI.

Claims (63)

1. A method, comprising:

executing, by one or more processors of a computing device, an integrated development environment (IDE) for managing software code for one or more software programs;

determining baselines of runtime performance information regarding execution of the software code in the IDE;

determining, at the IDE on the computing device, runtime performance information regarding execution of the software code in the IDE,

the runtime performance information corresponding to individual portions of the software code and indicating performance metrics that measure performance of changes to the individual portions of software code;

determining, by the IDE, lagging performance of individual portions of the software code in comparison to the determined baselines of runtime performance information;

translating, by the IDE, the runtime performance information into user-understandable indications of the runtime performance information; and

displaying, by the IDE, the user-understandable indications of the runtime performance information in a graphical user interface (GUI) when a respective corresponding individual portion of the software code is displayed in the GUI.

2. The method as in claim 1 , further comprising:

highlighting, within the GUI, the individual portions of the software code having lagging performance.

3. The method as in claim 1 , further comprising:

determining the baselines of runtime performance information based on external sources of baseline information, wherein the user-understandable indications are based on a comparison to the baselines.

4. The method as in claim 1 , further comprising:

determining the baselines of runtime performance information based on past performance of the individual portions of the software code within the IDE, wherein the user-understandable indications are based on a comparison to the baselines.

5. The method as in claim 1 , further comprising:

determining runtime performance information regarding execution of different versions of the software code in the IDE; and

displaying the runtime performance information offe-F the different versions simultaneously in the GUI.

6. The method as in claim 1 , further comprising:

determining a business transaction impact corresponding to individual portions of the software code; and

displaying the business transaction impact in the GUI when a respective corresponding individual portion of the software code is displayed in the GUI.

7. The method as in claim 1 , wherein determining the runtime performance information is based on one of either obtaining the runtime performance information from one or more external sources or internally computing the runtime performance information.

8. The method as in claim 1 , wherein the individual portions of the software code comprise one or both of class-level codes and method-level codes.

9. The method as in claim 1 , further comprising:

receiving user-generated instruction to custom define one or more of the individual portions of the software code.

10. The method as in claim 1 , further comprising:

providing, within the IDE, a root cause debugger tool.

11. The method as in claim 1 , wherein the runtime performance information is selected from a group consisting of: snapshots; stack traces; call graphs; performance statistics; monitoring data; and business performance data.

12. The method as in claim 1 , further comprising:

receiving user selection on a particular individual portion of the software code that is displayed in the GUI; and in response

displaying runtime performance information for the particular individual portion that is more detailed than the user-understandable indications of the runtime performance information.

13. The method as in claim 1 , wherein the runtime performance information comprises stack traces, the method further comprising:

displaying the stack traces in the GUI;

receiving user selection on a particular stack trace; and in response

opening the stack trace within the IDE.

14. The method as in claim 1 , wherein user-understandable indications of the runtime performance information is selected from a group consisting of: color-coded code; highlighted code; warning indicators; and inline tags.

15. A tangible, non-transitory, computer-readable medium storing program instructions that cause a computer to execute a process comprising:

maintaining an integrated development environment (IDE) for managing software code for one or more software programs,

wherein the IDE is executed by one or more processors of the computer;

determining baselines of runtime performance information regarding execution of the software code in the IDE;

determining runtime performance information regarding execution of the software code in the IDE,

the runtime performance information corresponding to individual portions of the software code and indicating performance metrics that measure performance of changes to the individual portions of software code;

determining lagging performance of individual portions of the software code in comparison to the determined baselines of runtime performance information;

translating the runtime performance information into user-understandable indications of the runtime performance information; and

displaying the user-understandable indications of the runtime performance information in a graphical user interface (GUI) of the IDE when a respective corresponding individual portion of the software code is displayed in the GUI.

16. The computer-readable medium as in claim 15 , wherein the process further comprises:

highlighting, within the GUI, the individual portions of the software code having lagging performance.

17. The computer-readable medium as in claim 15 , wherein the process further comprises:

determining the baselines of runtime performance information based on external sources of baseline information, wherein the user-understandable indications are based on a comparison to the baselines.

18. The computer-readable medium as in claim 15 , wherein the process further comprises:

determining a business transaction impact corresponding to individual portions of the software code; and

displaying the business transaction impact in the GUI when a respective corresponding individual portion of the software code is displayed in the GUI.

19. The computer-readable medium as in claim 15 , wherein the individual portions of the software code comprise one or both of class-level codes and method-level codes.

20. An apparatus, comprising:

one or more network interfaces configured to communicate in a computer network;

a processor coupled to the network interfaces and adapted to execute one or more processes; and

a memory configured to store a process executable by the processor, the process when executed operable to:

maintain an integrated development environment (IDE) for managing software code for one or more software programs;

determine baselines of runtime performance information regarding execution of the software code in the IDE;

determine runtime performance information regarding execution of the software code in the IDE,

the runtime performance information corresponding to individual portions of the software code and indicating performance metrics that measure performance of changes to the individual portions of software code;

determine lagging performance of individual portions of the software code in comparison to the determined baselines of runtime performance information;

translate the runtime performance information into user-understandable indications of the runtime performance information; and

display the user-understandable indications of the runtime performance information in a graphical user interface (GUI) of the IDE when a respective corresponding individual portion of the software code is displayed in the GUI.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2017
From: TALLURI, SATISH; PUVVADA, SURAJ; BUSI REDDY, BUCHI REDDY; CHAGANTI, PRUDHVI KUMAR
To: CISCO TECHNOLOGY, INC.
Reel/Frame 043150/0073 →
Cited By (3)
US 12,314,707 US 12,645,478 US 12,664,069