Patent Document ID: 7475214
Application ID: 11464944
Patent Flag: 1

Claim One:
1. A method for use by a software development tool to assist a software developer in optimizing performance of a Java virtual machine (Jvm), the method comprising: in response to a heap exhaustion error, which indicates a requested usage of heap memory by the Jvm greater than a maximum limit of heap memory, determining if currently available heap memory, as a percentage of the maximum limit, meets a specified minimum threshold; in response to the heap exhaustion error, and the percentage of available memory falling below the minimum threshold, advising the developer to review usage of the heap memory; in response to the heap exhaustion error, and the percentage of available memory being above the minimum threshold, advising the developer to check for fragmentation of the heap memory; in response to the heap exhaustion error, and the percentage of available memory being above the minimum threshold, determining if an initial heap size selected by the developer exceeds at least one of: a size threshold; and, a ratio to the maximum limit threshold; in response to the heap exhaustion error, the percentage of available memory being above the minimum threshold, and the at least one of the size threshold and the ratio threshold being exceeded, advising the developer to reduce the initial heap size; in response to the heap exhaustion error, the percentage of available memory being above the minimum threshold, and a request for heap memory by an object being in excess of an object threshold value specified by the developer, advising the developer to avoid the use of large object requests for heap memory; in response to the heap exhaustion error, and the percentage of available memory being above the minimum threshold, measuring a maximum number of actual class files, which store bytecodes for subsequent execution by the Jvm, and comparing an amount of memory consumed by storing the maximum number of actual class files to an amount of memory reserved for storing the class files; and in response to the heap exhaustion error, the percentage of available memory being above the minimum threshold, and determining that the amount of memory reserved for storing the class files exceeds the amount of memory consumed by storing the maximum number of actual class files by less than a minimum class threshold percentage, advising the developer to increase the amount of memory reserved for storing the class files; creating a time series analysis model based upon a historical use of heap memory to predict future usage of heap memory by the Jvm; in response to the time series analysis model having an upward trend of heap memory usage, advising the developer to review a heap dump to determine if a possible memory leak exists; in response to the time series analysis model having a horizontal asymptote as a predicted future time value increases, advising the developer to specify the maximum limit of heap memory as a function of the horizontal asymptote.