Diskussion:HotSpot
Überarbeitung
[Quelltext bearbeiten]- 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
[Quelltext bearbeiten]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
[Quelltext bearbeiten]Der folgende Weblink wurde von einem Bot („GiftBot“) als nicht erreichbar erkannt. |
---|
|
- http://docs.oracle.com/javase/specs/jvms/se5.0/html/VMSpecTOC.doc.html
- Vielleicht ist eine archivierte Version geeignet: archive.org