Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

03.04.1998 - 

Interview

Interview "Java-Programme laufen sehr schnell ab"

CW: Sun propagierte auf der diesjährigen Javaone-Konferenz Java besonders für die Entwicklung von Server-Programmen.Ist Ihre Technologie denn wirklich reif für solche Anwendungen, besonders wenn man an die vergleichsweise geringe Ausführungsgeschwindigkeit des interpretierten Java-Codes denkt?

Gosling: Niemand verwendet mehr interpretierten Code.Byte-Code ist das Format, in dem Java-Programme verschickt werden.Auf der Zielplattform werden sie während des Herunterladens sofort in Maschinencode übersetzt.Abhängig von der Qualität des verwendeten Just-in-Time- (JIT-)Compilers laufen sie dann sehr schnell ab.

CW: Aber nicht so schnell wie plattformspezifische Programme?

Gosling: Java-Anwendungen werden in plattformspezifischen Code übersetzt.

CW: Aber nicht vollständig!

Gosling: Das hängt vom JIT ab, einige übersetzen Java-Anwendungen vollständig. Aber das sind normalerweise die langsamsten, weil sie eine dumme Strategie verfolgen.Die intelligenten JIT-Compiler analysieren das Programm zur Laufzeit und übersetzen Codeteile abhängig davon, wieviel Zeit die Anwendung dort verbringt ("runtime profiling").Wir können Ihnen Benchmark-Ergebnisse zeigen, wo Java dank dynamischer Kompilierung besser abschneidet als C.

CW: Ein anderes Problem für Anwendungen, die 24 Stunden pro Tag und sieben Tage pro Woche laufen müssen, könnte die Speicherverwaltung von Java sein.Der Garbage Collector gibt nicht alle Objekte frei und verbraucht dadurch immer mehr Arbeitsspeicher.

Gosling: Der Garbage Collector von JDK 1.1 arbeitet nach einem hybriden Modell, er verwendet exakte Methoden für alle Heap-Objekte, inexakte für Register.Insgesamt wird aber weniger als ein Prozent des Speichers mit solchen ungenauen Verfahren bearbeitet.Unsere geplante Virtual Machine (VM) mit dem Codenamen "Hotspot" wird ausschließlich exakte Techniken verwenden.

CW: Eine weitere Anforderung an Server-Programme ist Skalierbarkeit.Ihre Kollegen von Sunsoft gaben an, daß die Java Virtual Machine (JVM) für "Solaris" derzeit nur bis zu sechs CPUs skaliert.Das Betriebssystem kann aber bis zu 64 Sparc-Chips ausnutzen.Reicht das für Enterprise-Anwendungen?

Gosling: Die größte Schwierigkeit besteht in diesem Zusammenhang darin, Threads zwischen Java und dem Betriebssystem zu synchronisieren.Aber die Grenze von sechs Prozessoren kann ich nicht bestätigen.Ich habe Java-Anwendungen auf Systemen mit weit mehr CPUs ausgeführt.Ich weiß nicht, worauf sich die Kollegen hier beziehen.

CW: Mittlerweile existiert eine ganze Reihe von Java-Versionen, die Versionsnummern nutzen sogar schon die zweite Nachkommastelle.Müssen Anwender da nicht mit erheblichem Wartungsaufwand rechnen, damit die richtige Ablaufumgebung für die jeweils genutzten Programme verfügbar ist?

Gosling: Wir bieten zu diesem Zweck ein Tool namens "Activator" an, das auch Bestandteil von "Java Jumpstart" sein wird.Anwender müssen innerhalb einer Web-Seite nur festlegen, welche VM-Version ein bestimmtes Programm benötigt. Wenn diese auf dem Client nicht vorhanden ist, wird sie automatisch heruntergeladen und installiert.Dabei ist es auch möglich, mehrere VM-Ausführungen nebeneinander zu behalten.Die Ablaufumgebungen werden als signierte Archive übertragen, damit kein Virus eingeschleust werden kann.

Im übrigen legen wir sehr großen Wert auf Abwärtskompatibilität.Wenn Sie die neueste VM installiert haben, können Sie sicher sein, daß sich damit auch ältere Applets ausführen lassen.

CW: Java soll auf höchst unterschiedlichen Geräten zum Einsatz kommen, von der Smartcard bis zum Supercomputer.Werden deshalb eine Vielzahl von VMs auf den Markt gelangen, die auf bestimmte Einsatzgebiete zugeschnitten sind?

Gosling: Das ist ein Punkt, der viele Leute verwirrt und bei dem sie einiges durcheinanderbringen.Eine Sache ist die Spezifikation.Dazu gehören der Befehlssatz der VM und das API.Sie ist von zentraler Bedeutung bei der Ausführung von Anwendungen, deshalb ist sie für alle Plattformen einheitlich. In diesem Sinne ist Java überall gleich.Aber die Implementierungen sind für unterschiedliche Zwecke grundlegend verschieden.Eine Ablaufumgebung für ein Hochleistungs-System mit symmetrischem Multiprocessing (SMP) unterscheidet sich radikal von solchen für Web-Telefone.