Patent Document ID: 8132162
Application ID: 11773463
Patent Status: 1

Claim One:
1. A system for supporting method level caching by a runtime machine, comprising: a disk space of a computer system comprising at least one type of memory; an operating system for controlling allocations and access within the disk space; a runtime machine for running at least one application through at least one of the operating system and directly on at least one processor of the computer system, the runtime machine for managing a selected disk space from among the disk space allocated to the runtime machine by the operating system and for managing a separate method cache within the selected disk space limited to storing at least one result of at least one method of a plurality of methods of the application for access for a next instance of the at least one method during runtime of the application, wherein the separate method cache is separate from an application heap managed by the runtime machine for the application within the selected disk space; the runtime machine for accessing at least one argument object graph and a result object graph for each method of the plurality of methods of the application to determine whether a size of the at least one argument object graph and the result object graph exceeds a maximum graph size for the method cache; the runtime machine, responsive to the size of the at least one argument object graph and the result object graph exceeding the maximum graph size for the method cache, for marking the particular method to direct the runtime machine not to cache the separate result of the particular method in the method cache; the runtime machine, responsive to the size of the at least one argument object graph and the result object graph not exceeding the maximum graph size for the method cache, analyzing the at least one argument object graph and result object graph for the particular method to determine whether each separate at least one argument object graph and result object graph for the particular method comprises only primitive object types, wherein as the runtime machine traverses each node of each of the at least one argument object graph and result object graph the runtime machine updates a current traversal time since the start of traversing the at least one argument object graph and result object graph and updates an estimated traversal time remaining for traversing the at least one argument object graph and result object graph based on a number of paths remaining in the at least one argument object graph and result object graph; the runtime machine, responsive to detecting that at least one of the current traversal time and the estimated traversal time exceed a maximum analysis time, halting the analysis of the particular method and marking the particular method to direct the runtime machine not to cache a separate result of the particular method in the method cache; the runtime machine, responsive to detecting that a particular at least one argument object graph and result object graph of a particular method from among the plurality of methods comprises only primitive object types, and the current traversal time or estimated traversal time does not exceed a maximum analysis time, for marking the particular method to direct the runtime machine to cache the separate result of the particular method in the method cache.