Object Combining: A new aggressive optimization for Object Intensive Programs

Veldema R, Jakobs C, Hofmann R, Bal H (2002)


Publication Language: English

Publication Type: Conference contribution, Original article

Publication year: 2002

Publisher: ACM

Edited Volumes: Proceedings of the Joint ACM Java Grande - ISCOPE Conference

City/Town: New York

Pages Range: 165-174

Conference Proceedings Title: Proceeding JGI '02 Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande

Event location: Seattle, WA US

ISBN: 1-58113-599-8

URI: http://www2.informatik.uni-erlangen.de/publication/download/jg02-jackal.ps

DOI: 10.1145/583810.583829

Abstract

Object combining tries to put objects together that have roughly the same life times in order to reduce strain on the memory manager and to reduce the number of pointer indirections during a program's execution. Object combining works by appending the fields of one object to another, allowing allocation and freeing of multiple objects with a single heap (de)allocation. Unlike object in-lining, which will only optimize objects where one has a (unique) pointer to another, our optimization also works if there is no such relation. Object inlining also directly replaces the pointer by the inlined object's fields. Object combining leaves the pointer in place to allow more combining. Elimination of the pointer accesses is implemented in a separate compiler optimization pass. Unlike previous object inlining systems, reference field overwrites are allowed and handled, resulting in much more aggressive optimization. Our object combining heuristics also allow unrelated objects to be combined, for example those allocated inside a loop; recursive data structures (linked lists, trees) can be allocated several at a time and objects that are always used together can be combined. The main focus of object combining in this paper is on reducing object (de)allocation overhead, by reducing both garbage collection work and the number of object allocations. Reduction of memory management overhead causes execution time to be reduced by up to 35%. Indirection removal further reduces execution time by up to 6%.

Authors with CRIS profile

Involved external institutions

How to cite

APA:

Veldema, R., Jakobs, C., Hofmann, R., & Bal, H. (2002). Object Combining: A new aggressive optimization for Object Intensive Programs. In Proceeding JGI '02 Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande (pp. 165-174). Seattle, WA, US: New York: ACM.

MLA:

Veldema, Ronald, et al. "Object Combining: A new aggressive optimization for Object Intensive Programs." Proceedings of the ACM JavaGrande ISCOPE 2002 Conference, Seattle, WA New York: ACM, 2002. 165-174.

BibTeX: Download