<div class="csl-bib-body">
<div class="csl-entry">Beyer, S. (2020). <i>Efficient cycle detection on a partially reference counted heap</i> [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2020.44470</div>
</div>
-
dc.identifier.uri
https://doi.org/10.34726/hss.2020.44470
-
dc.identifier.uri
http://hdl.handle.net/20.500.12708/1342
-
dc.description.abstract
Two essential garbage collection techniques exist: tracing and reference counting. The goal of this work is to find an algorithm, to efficiently combine both approaches and collect cycles in partially reference counted heaps, a problem which is typically found in compiler-level language integrations, while keeping the impact on both integrated technologies and their existing garbage collector low. Two versions of the algorithm are implemented in the PyPy just-in-time compiler to support the integration of CPython extension modules. The final algorithm has been influenced by Jython's GC integrations for JyNI, but still stands on its own. Semi- and fully-incremental versions of this algorithm are designed and their correctness is established by a semi-formal proof. The implementations are verified using sophisticated tests and their efficiency is measured by running several benchmarks. The results reveal, that the fully-incremental version of the algorithm seems to behave quite well and is able to compensate a lot of the introduced overhead, of fully integrating both garbage collection mechanisms.
en
dc.description.abstract
Zur automatisierten Speicherbereinigung, kurz Garbage Collection, existieren zwei grundlegende Ansätze: Tracing und Reference Counting. Ziel dieser Arbeit ist es, einen Algorithmus zu finden, der beide Ansätze auf effiziente Weise vereint, und der es ermöglicht Zyklen auf teilweise referenzgezählten Heaps zu erkennen, ein Problem das typischerweise in Sprachintegrationen auf Compiler-Ebene gefunden werden kann, und gleichzeitig die Auswirkungen auf die zu integrierenden Technologien und deren Garbage Collector niedrig hält. Zwei Versionen dieses Algorithmus wurden im PyPy Just-in-time-Compiler implementiert, um die Integration von CPython-Erweiterungsmodulen zu unterstützen. Der finale Algorithmus ist an Jython's JyNI-Integration angelehnt, kann aber als eigenständig betrachtet werden. Eine teilweise und eine vollständig inkrementelle Version dieses Algorithmus wurden entworfen und deren Korrektheit semiformell bewiesen. Die Implementierungen wurden mittels aufwändiger Tests verifiziert und mithilfe eigener Benchmarks verglichen. Die Ergebnisse zeigen, dass das Verhalten der vollständig inkrementellen Version des Algorithmus relativ gut ist und ein großer Teil des Mehraufwands kompensiert werden kann, der durch die vollständige Integration beider Ansätze entsteht.
de
dc.language
English
-
dc.language.iso
en
-
dc.rights.uri
http://rightsstatements.org/vocab/InC/1.0/
-
dc.subject
Garbage Collection
de
dc.subject
Cycle Detection
de
dc.subject
Reference Counting
de
dc.subject
Mark-Sweep
de
dc.subject
Tracing
de
dc.subject
Hybrid
de
dc.subject
Partitioned Heap
de
dc.subject
Incremental Collection
de
dc.subject
Efficiency
de
dc.subject
Performance
de
dc.subject
PyPy
de
dc.subject
cpyext
de
dc.subject
CPython
de
dc.subject
Garbage Collection
en
dc.subject
Cycle Detection
en
dc.subject
Reference Counting
en
dc.subject
Mark-Sweep
en
dc.subject
Tracing
en
dc.subject
Hybrid
en
dc.subject
Partitioned Heap
en
dc.subject
Incremental Collection
en
dc.subject
Efficiency
en
dc.subject
Performance
en
dc.subject
PyPy
en
dc.subject
cpyext
en
dc.subject
CPython
en
dc.title
Efficient cycle detection on a partially reference counted heap
en
dc.type
Thesis
en
dc.type
Hochschulschrift
de
dc.rights.license
In Copyright
en
dc.rights.license
Urheberrechtsschutz
de
dc.identifier.doi
10.34726/hss.2020.44470
-
dc.contributor.affiliation
TU Wien, Österreich
-
dc.rights.holder
Stefan Beyer
-
dc.publisher.place
Wien
-
tuw.version
vor
-
tuw.thesisinformation
Technische Universität Wien
-
tuw.publication.orgunit
E194 - Institut für Information Systems Engineering