Patent ID: 7937257

Claim:
A computer implemented method for estimating performance of an application, comprising: using a processor that is programmed for performing a simulation of behavior of an application during an execution of the application, the act of performing the simulation during the execution of the application comprises: monitoring the execution of the application for generating data for performing the simulation of the behavior of the application; identifying a number of pool sizes, each of the number of the pool sizes specifying a size of a memory that can be used by the application; for the each of the number of the pool sizes, predicting the performance of one or more operations of the application by at least determining information or data about spill and unspill to generate an output to improve memory allocation to the application, wherein the act of determining the information or data about the spill and the unspill is repeated for a plurality of requests during the execution of the application for the each of the number of pool sizes, and the information or data about the spill comprises a number of one or more spills and the information or data about the unspill comprises a number of one or more unspills that would result from at least some of the plurality of requests as if the application were allocated an amount of memory specified by the each of the number of the pool sizes; and using a display apparatus configured for displaying the information or data about the spill or the unspill or using a computer readable storage medium or a computer storage device configured for storing the information or data about the spill or the unspill.