Title: Escape analysis and stack allocation of Java objects in the CACAO VM
Language: English
Authors: Molnár, Peter 
Qualification level: Diploma
Keywords: Escapeanalyse; Stackallokation; Static-single assignment form; Loopanalyse; Java VM; Java; Just-in-time compiler; CACAO VM
Escape analysis; Stack allocation; Static-single assignment form; Loop analysis; Java VM; Java; Just-in-time compiler; CACAO VM
Advisor: Krall, Andreas
Issue Date: 2009
Number of Pages: 85
Qualification level: Diploma
Abstract: 
Escapeanalyse ist eine statische Analyse, welche feststellt, ob Objekte länger leben als deren Erzeuger. Die durch Escapeanalyse zusätzlich gewonnenen Informationen können zur Optimierung der Speicherverwaltung und Synchronisation in einer virtuellen Maschine genutzt werden.
Im Kontext dieser Arbeit wurde Escapeanalyse für die freie virtuelle Maschine CACAO implementiert. Die Analyse arbeitet in zwei Schritten.
Die intraprozedurale Analyse berechnet Escapeinformation für einzelne Allokationspunkte in einer Methode und Information für die gesamte Methode, welche im Rahmen von einer interprozeduralen Analyse in verschiedenen Aufrufkontexten wiederverwendet werden kann. Die berechnete Escapeinformation wird verwendet um einen Teil von threadlokalen Java Objekten auf dem Stack zu allozieren. Die Implementierung und die notwendigen Änderungen der virtuellen Maschine werden im Detail beschrieben.
Anschließend wird die Implementierung durch Benchmarken evaluiert. In einigen Spec-Benchmarks werden 50% bis 90% von Java Objekten auf dem Stack alloziert, was zu einer Verbesserung der Laufzeit von bis zu 40% führt.

Escape analysis is a static code analysis that determines, whether the lifetime of objects exceeds the lifetime of their creation site. The additional knowledge gained through escape analysis can be used to optimize memory management and synchronization in a virtual machine.
In the context of this thesis, escape analysis has been implemented for the CACAO virtual machine. The analysis proceeds in two stages:
intraprocedural analysis computes escape information for allocation sites within a single method and call-context agnostic summary information, that is used for interprocedural analysis. Escape information is used to allocate a subset of thread-local Java objects on the call stack. The implementation and the modifications of the virtual machine are described in detail.
Finally, the implementation is evaluated by benchmarking using the Spec JVM98 and the Dacapo benchmark suites. In selected Spec benchmarks, 50% to 90% of all objects get allocated on the call stack leading to an execution time reduction of up to 40%.
URI: https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-26787
http://hdl.handle.net/20.500.12708/11166
Library ID: AC05040078
Organisation: E185 - Institut für Computersprachen 
Publication Type: Thesis
Hochschulschrift
Appears in Collections:Thesis

Files in this item:

Show full item record

Page view(s)

9
checked on Feb 18, 2021

Download(s)

120
checked on Feb 18, 2021

Google ScholarTM

Check


Items in reposiTUm are protected by copyright, with all rights reserved, unless otherwise indicated.