Selecting Functions for Memoization Analysis
First Claim
Patent Images
1. A method performed by at least one computer processor, said method comprising:
- receiving an application, said application comprising a plurality of functions;
performing an initial analysis of said application, said initial analysis comprising;
executing said application and during said executing, collecting initial operational data comprising length of execution for each of said functions;
selecting a first function for detailed analysis at least in part based on said operational data;
performing a detailed analysis on said first function, said detailed analysis comprising;
receiving additional operational data comprising input parameters and return values;
evaluating said first function to determine said first function is memoizable; and
causing said first function to be memoized.
2 Assignments
0 Petitions
Accused Products
Abstract
A function may be selected for memoization when the function indicates that memoization may result in a performance improvement. Impure functions may be identified and ranked based on operational data, which may include length of execution. A function may be selected from a ranked list and analyzed for memoization. The memoization analysis may include side effect analysis and consistency analysis. In some cases, the optimization process may perform optimization on one function at a time so as to not overburden a running system.
87 Citations
20 Claims
-
1. A method performed by at least one computer processor, said method comprising:
-
receiving an application, said application comprising a plurality of functions; performing an initial analysis of said application, said initial analysis comprising; executing said application and during said executing, collecting initial operational data comprising length of execution for each of said functions; selecting a first function for detailed analysis at least in part based on said operational data; performing a detailed analysis on said first function, said detailed analysis comprising; receiving additional operational data comprising input parameters and return values; evaluating said first function to determine said first function is memoizable; and causing said first function to be memoized. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A system comprising:
-
a processor; an application executing on said processor; a memoization analyzer that; performs an initial analysis of said application, said initial analysis comprising; executing said application and during said executing, collecting initial operational data comprising length of execution for each of said functions; selecting a first function for detailed analysis at least in part based on said operational data; performs a detailed analysis on said first function, said detailed analysis comprising; receiving additional operational data comprising input parameters and return values; evaluating said first function to determine said first function is memoizable; and causing said first function to be memoized. - View Dependent Claims (17, 18, 19, 20)
-
Specification