Skip to main content
eScholarship
Open Access Publications from the University of California

Efficiently verifiable escape analysis

Abstract

Escape analysis is highly beneficial for optimizing object-oriented programming languages such as Java, significantly reducing memory management and synchronization overhead. However, existing escape analysis algorithms are generally too heavy-weight to be applicable in just-in-time compilation contexts.

We present an alternative analysis that is less precise than traditional escape analysis, but that can be verified extremely efficiently. Hence, it becomes feasible to perform the analysis ahead of time and ship its result as an annotation with the bytecode, without sacrificing safety at the code consumer. In contrast, existing escape-analysis annotation approaches are unsafe. Moreover, unlike any other escape analysis that we know of, our method optionally provides for dynamic class loading, which is necessary for full Java compatibility.

Benchmarks indicate that our verifiable analysis can pinpoint on average 66% of all non-escaping allocation sites (56% when dynamic loading is supported), with negligible space overhead for the transport of annotations and negligible time overhead for the verification.

Main Content
For improved accessibility of PDF content, download the file to your device.
Current View