Diskussion:HotSpot

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 28. November 2015 um 08:26 Uhr durch imported>GiftBot(633938) (→‎Defekter Weblink: Wikipedia:Defekte Weblinks/Botmeldung (Problem?) – letzte Bearbeitung: Galaktos, 21.06.2012 19:49:03 CEST, Neuer Abschnitt →‎CompileTheWorld).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Überarbeitung

  • Besseres Beispiel einer Optimierung, welche nicht statisch durchgeführt werden könnte
  • abklären ob Java-Interpreter alles compiliert, oder nur hotspots compiliert und rest interpretiert

Also ich wuerde mich dem Vorschlag anschliessen und das Beispiel ganz rausnehmen, da es schon dem statischen frontend Compiler zum Opfer fallen wuerde.

Die Java VM von Sun (seit 1.3.1) interpretiert zuerst den gesamten Code in einer Interpreterschleife. Anschliessend werden sogenannte hotstpots Aufgrund von zwei Heuristiken entdeckt:

  • Anzahl von Schleifendurchlauefen.
  • Aufrufhaufigkeit von Methoden.

Die Methoden werden dann komplett in den Maschinencode der Ziehlplattform kompiliert und nach Fertigstellung des Kopilats mittels on-stack-replacement anstatt des Bytecodes aktiviert.

Ich koennte einen relativ detailierten Artikel verfassen wie die Sun VM funktioniert, falls das gewuenscht waere.

Gruss, Matthias.

Mich würde das sehr interessieren. Aber ist es nicht so, dass zumindest die Client-VM, die die meisten wohl installiert haben, direkt JIT-compiliert? Ich lasse mich gerne eines besseren belehren. :)

Und dabei würde ich übrigens überlegen, ob es dann besser in den Eintrag für die JVM passt.

Hallo ?,

ich verstehe deine Formulierung "direkt JIT-compiliert" nicht. Was meinst Du damit genau?

Die meisten Leute habe ein Server-VM installiert, da das meiste Java auf Servern laeuft. Die Client VM wird eh mit Mustang, Dolpin in die Server VM uebergeben. D.h. es wird perspektivisch nur noch eine VM geben.

Ueber die funktionsweise der Server VM werde ich einen Artikel verfassen, wobei mir noch nicht so ganz klar ist, wo ich den dranhaengen sollte.

cheers,

Matthias

CompileTheWorld

Das Flag XX:+CompileTheWorld ist meiner HotSpot JVM unbekannt; in der Dokumentation taucht es nicht auf. Wurde es entfernt?

java version "1.7.0_04"<br\> Java(TM) SE Runtime Environment (build 1.7.0_04-b22)<br\> Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)

--DSGalaktos (Diskussion) 12:49, 21. Jun. 2012 (CEST)

Defekter Weblink

GiftBot (Diskussion) 09:26, 28. Nov. 2015 (CET)