IP Library Granted Patent US 10,922,062
Granted Patent B2
US 10,922,062 · App. 16/384,651 · Granted Feb 16, 2021

Software application optimization

Inventors: Laksh Venka (San Francisco, CA); Brian Toal (San Francisco, CA)
Assignee: SALESFORCE.COM, INC.
G06F8/4443
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,922,062
App. No.
16/384,651
Granted
Feb 16, 2021
Kind
B2
Abstract

Embodiments of the present disclosure relate to software application optimization. Other embodiments may be described and/or claimed.

Claims (35)

1. A system comprising:

a processor; and

memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to perform operations comprising:

identifying a plurality of code frames for a software application;

retrieving a set of metrics collected for the software application;

determining, based on the set of metrics, a compilation state for each respective code frame;

determining a respective weight associated with the respective compilation state for each respective code frame, wherein determining the respective weight for each respective code frame includes applying a function to assign the respective weight to the respective code frame based on a processor utilization metric associated with the respective code frame and the compilation state of the respective code frame, and wherein the compilation state for a code frame from the plurality of code frames is a compiled state having an enumerated tier and an enumerated level within the tier; and

generating an optimization report comprising a list of the code frames and the respective weight for each code frame.

2. The system of claim 1 , wherein the compilation state for a code frame from the plurality of code frames is an interpreted state or a compiled state.

3. The system of claim 1 , wherein determining the compilation state for the code frames includes analyzing respective metadata associated with each respective code frame.

4. The system of claim 3 , wherein the metadata for a code frame includes respective compilation information for each respective method associated with the code frame.

5. The system of claim 1 , wherein the set of metrics includes one or more of: an amount of processor execution time for a thread of the software application, and a latency associated with a thread of the software application.

6. The system of claim 1 , wherein generating the optimization report includes identifying a portion of the software application that was not compiled inline due to a size of one or more methods associated with a code frame.

7. A tangible, non-transitory computer-readable medium storing instructions that, when executed by a computer system, cause the computer system to perform operations comprising:

identifying a plurality of code frames for a software application;

retrieving a set of metrics collected for the software application;

determining, based on the set of metrics, a compilation state for each respective code frame;

determining a respective weight associated with the respective compilation state for each respective code frame, wherein determining the respective weight for each respective code frame includes applying a function to assign the respective weight to the respective code frame based on a processor utilization metric associated with the respective code frame and the compilation state of the respective code frame, and wherein the compilation state for a code frame from the plurality of code frames is a compiled state having an enumerated tier and an enumerated level within the tier; and

generating an optimization report comprising a list of the code frames and the respective weight for each code frame.

8. The tangible, non-transitory computer-readable medium of claim 7 , wherein the compilation state for a code frame from the plurality of code frames is an interpreted state or a compiled state.

9. The tangible, non-transitory computer-readable medium of claim 7 , wherein determining the compilation state for the code frames includes analyzing respective metadata associated with each respective code frame.

10. The tangible, non-transitory computer-readable medium of claim 9 , wherein the metadata for a code frame includes respective compilation information for each respective method associated with the code frame.

11. The tangible, non-transitory computer-readable medium of claim 7 , wherein the set of metrics includes one or more of: an amount of processor execution time for a thread of the software application, and a latency associated with a thread of the software application.

12. The tangible, non-transitory computer-readable medium of claim 7 , wherein generating the optimization report includes identifying a portion of the software application that was not compiled inline due to a size of one or more methods associated with a code frame.

13. A method comprising:

identifying, by a computer system, a plurality of code frames for a software application;

retrieving, by the computer system, a set of metrics collected for the software application;

determining, by the computer system based on the set of metrics, a compilation state for each respective code frame;

determining, by the computer system, a respective weight associated with the respective compilation state for each respective code frame, wherein determining the respective weight for each respective code frame includes applying a function to assign the respective weight to the respective code frame based on a processor utilization metric associated with the respective code frame and the compilation state of the respective code frame, and wherein the compilation state for a code frame from the plurality of code frames is a compiled state having an enumerated tier and an enumerated level within the tier; and

generating, by the computer system, an optimization report comprising a list of the code frames and the respective weight for each code frame.

14. The method of claim 13 , wherein the compilation state for a code frame from the plurality of code frames is an interpreted state or a compiled state.

15. The method of claim 13 , wherein determining the compilation state for the code frames includes analyzing respective metadata associated with each respective code frame.

16. The method of claim 15 , wherein the metadata for a code frame includes respective compilation information for each respective method associated with the code frame.

17. The method of claim 13 , wherein the set of metrics includes one or more of: an amount of processor execution time for a thread of the software application, and a latency associated with a thread of the software application.

18. The method of claim 13 , wherein generating the optimization report includes identifying a portion of the software application that was not compiled inline due to a size of one or more methods associated with a code frame.

Assignments (2)
CHANGE OF NAME Recorded Oct 30, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 065394/0169 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2019
From: VENKA, LAKSH; TOAL, BRIAN
To: SALESFORCE.COM, INC.
Reel/Frame 049177/0615 →
Continuity (1)
Related Publication 20200326918A1 · Oct 15, 2020