Escape analysis and stack allocation of Java objects in the CACAO VM

Saved in:
Bibliographic Details
Title: Escape analysis and stack allocation of Java objects in the CACAO VM
Authors: Molnár, Peter
Contributors: Krall, Andreas
Publication Year: 2020
Collection: TU Wien: reposiTUm
Subject Terms: Escapeanalyse, Stackallokation, Static-single assignment form, Loopanalyse, Java VM, Java, Just-in-time compiler, CACAO VM, Escape analysis, Stack allocation, Loop analysis
Description: 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%. ; 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% ...
Document Type: thesis
File Description: 85 Bl.
Language: English
Relation: https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-26787; http://hdl.handle.net/20.500.12708/11166; AC05040078; urn:nbn:at:at-ubtuw:1-26787
Availability: https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-26787
https://hdl.handle.net/20.500.12708/11166
Rights: open
Accession Number: edsbas.1D70BD07
Database: BASE
Be the first to leave a comment!
You must be logged in first