Laufzeitverhalten und Portierungsaspekte der
Java Virtual Machine (JVM)
und ausgewählter Java-Bibliotheken

Marc Schanne
Eine Studienarbeit am
Institut für Programmstrukturen und Datenorganisation
Betreuer: Dr. Michael Philippsen (IPD),
Ralf J. Schäfer (Siemens AG, München)
Universität Karlsruhe
26. Februar 1997
Zusammenfassung
Die Programmiersprache Java von Sun Microsystems hat innerhalb
kürzester Zeit die schön geordnete Welt der Softwareentwicklung
durcheinander geworfen. Objektorientiert, sicher, robust und
portabel, soll das Java-System die Entwicklungsplattform der
Zukunft sein.
Eine Komponente des Java-Systems ist die Java Virtual
Machine (JVM), die Spezifikation für eine abstrakte stack-
basierte Maschinenstruktur.
Diese Arbeit stellt das Modell der JVM vor und untersucht und
vergleicht die Möglichkeiten und Grenzen von JVM auf verschieden
Plattformen. Das Laufzeitverhalten unterschiedlicher JVM-
Implementierungen wird anhand einer Sammlung von Testprogrammen
gemessen und verglichen.
Zusätzlich sind Konzepte wie Just-in-Time-Übersetzung oder
die Verwendung von Native-Routinen zur beschleunigten Ausführung
von Programmen Inhalt der Überlegungen.
In einem zweiten Teil wird das Abstract Window Toolkit (der
JDK 1.0.2) als größte Java Bibliothek betrachtet und
Möglichkeiten der Portierung auf andere Hardwareplattform und
Betriebssystem untersucht.
Quem in ipsa re trepidare nolueris, ante rem exercas - Seneca

Inhaltsverzeichnis
1 Einleitung
1.1 Java-Benchmarks
1.1.1 Beispiele im WWW
1.1.2 Möglichkeiten und Grenzen
1.2 Just in Time-Compiler (JITC)
1.3 Laufzeitintensive Anwendungen
2 Das Java-System
2.1 Die Programmiersprache
2.2 Die Java Virtual Machine
2.3 Die Kernbibliotheken
2.4 Die Implementierung
2.5 JDK 1.0.x
3 Laufzeitverhalten verschiedener JVM
3.1 Allgemeine Überlegungen
3.2 Benchmark-Programme
3.3 Überlegungen zur Programmiersprache Java
3.4 Test-Bedingungen
3.4.1 Die drei Testplattformen
3.4.2 Sonstige Festlegungen
3.5 Ergebnisse
3.6 Ergebnisse von CaffeineMark
4 Laufzeitverbesserungen
4.1 Natives
4.2 JIT/Ahead-of-Time-(Re)Compiler
4.3 Andere Hardware
4.3.1 Teilauslagerung
4.3.2 Vollimplementierung
5 Portierung von Bibliotheken
5.1 Abstract Window Toolkit
5.1.1 java.awt
5.1.2 java.awt.peer
5.1.3 sun.awt.win32
5.1.4 Alternativen
5.2 Weiterführendes
6 Zusammenfassung und Ausblick
A Programme
B Meßwerte der Benchmarks
C Verwendete Abkürzungen
Literaturverzeichnis
Die Studienarbeit ist auch als Postscript-Fassung, mit allen
Bildern und Grafiken, und als einfache ASCII-Datei erhältlich.
Alle Benchmark-Programme sind auch als Java-Quellcode verfügbar.
----------------------------------------------------------------
[home] [research] [guestbook] [contact] (c) SM