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