Die Bachelorarbeit konzentriert sich auf die Untersuchung der Leistung der Java Virtual Machi-
ne (JVM), insbesondere in containerisierten Umgebungen. Die Motivation für diese Arbeit sowie
die Zielsetzung und das methodische Vorgehen, einschlieSSlich der verwendeten Werkzeuge und
Methoden, werden in Kapitel 1 dargelegt.
Kapitel 2 erläutert die theoretischen Grundlagen, die für das Verständnis der Performanceun-
tersuchungen in dieser Arbeit erforderlich sind. Dazu gehört eine Einführung in die Performance
von Programmen und deren Messung, die Grundlagen von Containertechnologien sowie eine detail-
lierte Untersuchung der Struktur der Java Virtual Machine und der in dieser Arbeit verwendeten
JVM–Implementierungen. Zudem werden die eingesetzten Werkzeuge und Methoden sowie der
aktuelle Forschungsstand in diesem Bereich vorgestellt.
Das Experiment wird umfassend in Kapitel 3 beschrieben. Es wird ein detaillierter Einblick
in die Forschungs– und Entscheidungsprozesse gegeben, die zur Durchführung der Performan-
ceuntersuchungen führten, einschlieSSlich der Entwicklung und Prognosen der Benchmarks. Die
Implementierung der Anwendung, die Containerisierung der JVMs und die notwendigen Schritte
zur Ausführung und Messung der Benchmarks werden ebenfalls erläutert.
In Kapitel 4 werden die Messergebnisse der Container–ImagegröSSen und Startzeiten sowie
die Resultate der implementierten Benchmarks präsentiert. Die Daten werden analysiert und in
Bezug auf verschiedene Performanceaspekte interpretiert. Es wird versucht, die Vor– und Nach-
teile der unterschiedlichen JVM–Implementierungen darzustellen und Designentscheidungen zu
unterstützen.
AbschlieSSend werden die Ergebnisse der Arbeit in Kapitel 5 zusammengefasst. Es wird auf
die Gültigkeit der Ergebnisse unter bestimmten Bedingungen eingegangen und mögliche Grenzen
der Untersuchung aufgezeigt. AuSSerdem wird ein Ausblick auf potenzielle zukünftige Forschungs-
arbeiten gegeben.:Abbildungsverzeichnis III
Tabellenverzeichnis V
Listings VII
1 Einleitung 1
1.1 Motivation 1
1.2 Zielsetzung 1
1.3 Methodisches Vorgehen 2
2 Theoretische Grundlagen 3
2.1 Performance von Programmen 3
2.2 Container und Podman 5
2.3 JVM und ihre Struktur 6
2.3.1 Runtime Data Areas 6
2.3.2 Execution Engine 8
2.4 Unterschiede der JVM–Implementationen 9
2.4.1 HotSpot 9
2.4.2 GraalVM 10
2.4.3 Zulu 10
2.4.4 OpenJ9 10
2.5 Werkzeuge und Methoden 11
2.6 State of the Art 11
3 Experiment 13
3.1 Planung 13
3.1.1 Grundlegende Recherche 13
3.1.2 Entwurf der Benchmarks 14
3.1.3 Erwartungshaltung 15
3.2 Implementierung 15
3.3 Durchführung und Messung 21
4 Auswertung und Vergleich 23
5 Fazit 33
Literaturverzeichnis 35
A Quellcode und Ergebnisse der Benchmarks 39
A.1 Elektronischer Datenträger 39
A.2 Quellcode der Matrixmultiplikation 40
A.3 Ausschnitte des Quellcodes der GC–Benchmarks 41
A.4 Ausschnitte des Quellcodes des Quicksort–Benchmarks 42
Identifer | oai:union.ndltd.org:DRESDEN/oai:qucosa:de:qucosa:94342 |
Date | 06 November 2024 |
Creators | Wanck, Cedric |
Contributors | Hochschule für Technik, Wirtschaft und Kultur Leipzig |
Source Sets | Hochschulschriftenserver (HSSS) der SLUB Dresden |
Language | German |
Detected Language | German |
Type | info:eu-repo/semantics/acceptedVersion, doc-type:bachelorThesis, info:eu-repo/semantics/bachelorThesis, doc-type:Text |
Rights | info:eu-repo/semantics/openAccess |
Relation | urn:nbn:de:bsz:l189-qucosa2-942937, qucosa:94293 |
Page generated in 0.0024 seconds