Compiler

Post Reply
Message
Author
fungs
Posts: 14
Joined: 12. Jan 2001 17:28
Location: Halle in Westf.

Compiler

#1 Post by fungs »

Kann mich einer vom Fach aufklaeren was
Just-In-Time-Compiler und
Native-Code-Compiler sind?

(im Zusammenhang mit Java)
<font size="1"><sub><center>>>das Unmögliche möglich machen, nicht das Mögliche unmöglich<<</center></sub></font><!--1-->

Fritz

Re: Compiler

#2 Post by Fritz »

Der Just-In-Time-Compiler wird ausgeführt, wenn Du ein Programm mit "java Programm.class" startest. Dabei wird der plattformunabhängige Java-Code im Speicher kompiliert. Der kompilierte Code liegt dabei jedoch nicht auf der Festplatte vor, sondern ist nur im Speicher. Wenn Du das Programm noch einmal neu startest, wird der Java-Binary-Code auch von neuem kompiliert. Da reines interpretieren zu langsam ist, wurde dieser Schritt einfach anstelle des interpretierens benutzt.
Der HotSpot-Compiler ist soetwas ähnliches wie der Just-in-Time(JIT)-Compiler. Beim HotSpot-Compiler, werden nur die Programmabschnitte kompiliert, die des öfteren verwendet werden. Wenn jeder Code nur einmal aufgerufen wird, dann ist nämlich das interpretiren schneller. Enthält das Programm jedoch z.B. eine Schleife, dann werden Programmteile öfters aufgerufen und das kompilieren ist schneller. Der erste Schleifendurchlauf ist zwar besonders langsam, da alles interpretiert _und_ gleichzeitig kompiliert wird, danach ist es jedoch schneller, da der kompilierte Code ausgeführt wird.

Ein Native-Compiler ist das, was man bei Java niemals verwenden sollte. Der erstellt aus einer Programm.java-Datei (manchmal auch aus einer Programm.class-Datei) eine plattformabhängige Datei. Unter Windows würde er in diesem Fall eine *.EXE-Datei erstellen.
Der Native-Compiler erstellt somit "Native-Code". Der mitgefügte Compiler von Java (javac) erstellt hingegen "Binary-Code", der plattformunabhängig ist und beim ausführen gegebenenfalls _im_Speicher_ vorübergehend mit Hilfe des JIT-Compilers in nativen Code kompiliert wird.

fungs

Re: Compiler

#3 Post by fungs »

Danke,

muss ich erst mal drueber denken.

Post Reply