Logo image
Thin Guards: A Simple and Effective Technique for Reducing the Penalty of Dynamic Class Loading
Technical documentation   Open access

Thin Guards: A Simple and Effective Technique for Reducing the Penalty of Dynamic Class Loading

Matthew Arnold and Barbara G. Ryder
Rutgers University
2002
DOI:
https://doi.org/10.7282/t3-86en-ke85

Abstract

Dynamic class loading is an integral part of the Java programming language, offering a number advantages such as lazy class loading and dynamic installation of software components. Unfortunately, these advantages often come at the cost of decreased performance because certain optimizations become more difficult to perform when an optimizing compiler cannot assume that it has seen the whole program. This paper introduces thin guards, a simple but effective technique that uses lightweight runtime tests to identify regions of code within which speculative optimizations can be performed. One application of thin guards is described in detail, demonstrating how they can be used to perform speculative inlining in the presence of dynamic class loading. Our experimental evaluation shows that when used in combination with other traditional compiler optimizations, thin guards can eliminate most of the penalty dynamic class loading. Performance improvements of up to 27% are observed, eliminating up to 92% of the penalty imposed by dynamic class loading.
pdf
dcs-tr-470275.17 kBDownloadView
Author's Original (AO) Open Access
url
Report an accessibility issueView
Please complete a content remediation request to report an accessibility issue with a library electronic resource, website, or service.

Metrics

159 File downloads
77 Record Views

Details

Logo image