Static performance analysis of software
AssigneeMicrosoft Corporation
InventorsPhani Kishore Talluri, Rajesh Jalan, Perraju Bendapudi
Life of this patent
Estimating the term…
Abstract
Technologies for estimating deviations in the performance characteristics of a newer version of software relative to an older version. Such performance characteristics include cache misses, pages faults, and the like. Estimations are typically made by instrumenting and profiling an older version binary, determining differences in code blocks between the older and a newer version, propagating profile data from the older version to the newer version based on a simulation heuristic, and estimating performance deviations based on the older version, the profile data, configuration parameters, and the changes in the newer version without actually executing the newer version of the binary.
Claims20
An estimation system for estimating a deviation in performance of a newer binary relative to an older binary, the system comprising:
- a binary instrumentor operable to instrument the older binary and the newer binary;
- a profiler operable to provide profile data based at least in part on execution of the instrumented older binary;
- a delta analyzer operable to determine code block differences between the newer binary and the older binary;
- and
- a propagator operable to propagate portions of the profile data from the older binary to the newer binary based on a heuristic.
A method of estimating a performance deviation of a newer binary relative to an older binary, the method comprising:
- instrumenting the older binary;
- profiling the instrumented older binary, the profiling based at least in part on configuration parameters and resulting in profile data and performance characteristics of the older binary;
- analyzing the newer binary, the analyzing resulting in a list of block differences;
- propagating portions of the profile data to the newer binary based at least in part on the list of block differences;
- and
- calculating estimated performance characteristics of the newer binary relative to the older binary based at least in part on the propagated profile data or the configuration parameters.
A computer-readable medium with computer-executable instructions stored thereon, the computer-executable instructions sufficient to cause a computing environment to perform a method for estimating a performance deviation of a newer binary relative to an older binary, the method comprising:
- instrumenting the older binary;
- profiling the instrumented older binary, the profiling based at least in part on configuration parameters and resulting in profile data and performance characteristics of the older binary;
- analyzing the newer binary, the analyzing resulting in a list of block differences;
- propagating portions of the profile data to the newer binary based at least in part on the list of block differences;
- and
- calculating estimated performance characteristics of the newer binary relative to the older binary based at least in part on the propagated profile data or the configuration parameters.
Dependencies are inferred from the claim text.