Patent ID: 7685586
Filing Date: 2010-03-23
Classification: G06F

Abstract:
1. A method of static analysis of control flow and object flow within an object-oriented application, comprising: invoking a base method of a plurality of methods within the object-oriented application, the base method further: for each field of the plurality of reachable data fields and each array element of the plurality of reachable array elements, passing any objects of the plurality of reachable data fields and the plurality of reachable array elements to methods of the plurality of reachable methods that have established connections to said each field and said each array element; repeating the invoking of reachable methods and the passing of objects for any newly accessed method invocations, fields, and array elements until all accessed method invocations, fields and array elements can no longer establish any new connections to other methods, fields or array elements, or pass any objects through previously established connections; determining one or more possible routes of escape of objects from the plurality of objects from the object-oriented application, wherein the one or more possible routes of escape permit objects to persist longer than the invocation of the base method; identifying a plurality of escaped objects of the plurality of objects that have escaped from the one or more routes of escape and identifying a plurality of unescaped objects of the plurality of objects that are not the plurality of escaped objects of the plurality of objects; and optimizing one or more of the plurality of unescaped objects when the object-orientated application is executed at runtime.