Exploiting prolific types for memory management and optimizations

Yefim Shuf, Manish Gupta, Rajesh Bordawekar, Jaswinder Pal Singh

Research output: Contribution to journalConference article

57 Scopus citations

Abstract

In this paper, we introduce the notion of prolific and non-prolific types, based on the number of instantiated objects of those types. We demonstrate that distinguishing between these types enables a new class of techniques for memory management and data locality, and facilitates the deployment of known techniques. Specifically, we first present a new type-based approach to garbage collection that has similar attributes but lower cost than generational collection. Then we describe the short type pointer technique for reducing memory requirements of objects (data) used by the program. We also discuss techniques to facilitate the recycling of prolific objects and to simplify object co-allocation decisions. We evaluate the first two techniques on a standard set of Java benchmarks (SPECjvm98 and SPECjbb2000). An implementation of the type-based collector in the Jalapeño VM shows improved pause times, elimination of unnecessary write barriers, and reduction in garbage collection time (compared to the analogous generational collector) by up to 15%. A study to evaluate the benefits of the short-type pointer technique shows a potential reduction in the heap space requirements of programs by up to 16%.

Original languageEnglish (US)
Pages (from-to)295-306
Number of pages12
JournalConference Record of the Annual ACM Symposium on Principles of Programming Languages
DOIs
StatePublished - 2002
EventPOPL 2002: 29th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - Portland, OR, United States
Duration: Jan 16 2002Jan 18 2002

All Science Journal Classification (ASJC) codes

  • Software

Fingerprint Dive into the research topics of 'Exploiting prolific types for memory management and optimizations'. Together they form a unique fingerprint.

  • Cite this