<div class="csl-bib-body">
<div class="csl-entry">Molnár, P. (2009). <i>Escape analysis and stack allocation of Java objects in the CACAO VM</i> [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-26787</div>
</div>
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.<br />In the context of this thesis, escape analysis has been implemented for the CACAO virtual machine. The analysis proceeds in two stages:<br />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.<br />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%.
en
dc.description.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.<br />Im Kontext dieser Arbeit wurde Escapeanalyse für die freie virtuelle Maschine CACAO implementiert. Die Analyse arbeitet in zwei Schritten.<br />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.<br />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.<br />
de
dc.language
English
-
dc.language.iso
en
-
dc.rights.uri
http://rightsstatements.org/vocab/InC/1.0/
-
dc.subject
Escapeanalyse
de
dc.subject
Stackallokation
de
dc.subject
Static-single assignment form
de
dc.subject
Loopanalyse
de
dc.subject
Java VM
de
dc.subject
Java
de
dc.subject
Just-in-time compiler
de
dc.subject
CACAO VM
de
dc.subject
Escape analysis
en
dc.subject
Stack allocation
en
dc.subject
Static-single assignment form
en
dc.subject
Loop analysis
en
dc.subject
Java VM
en
dc.subject
Java
en
dc.subject
Just-in-time compiler
en
dc.subject
CACAO VM
en
dc.title
Escape analysis and stack allocation of Java objects in the CACAO VM