Java JIT Compiler a kompilace do nativního kódu

neruda

Java JIT Compiler a kompilace do nativního kódu
« kdy: 30. 12. 2013, 20:37:49 »
Preji skoro vesely Silvestr a mam zde jeden dotaz pro vice zasvedcene ohledne kompilace Javy do nativniho kodu.

Znam ExcelsiorJET, gcj atd, dokonce je mi i jasne, ze HotSpot optimalizace vcetne napr escape analysis davaji docela smysl a nebyly by v nativnim kodu mozne, nicmene jen z teoretickeho hlediska:

Kdyz tu je JIT Compiler, jaky je duvod ho (asi celkem jednoduse) nevyuzit k prekladu celeho programu do nativni binarky?


« Poslední změna: 31. 12. 2013, 10:18:13 od Petr Krčmář »


mikrom

Re:Java JIT Compiler a kompilace do nativniho kodu
« Odpověď #1 kdy: 30. 12. 2013, 23:31:28 »
Kdyz tu je JIT Compiler, jaky je duvod ho (asi celkem jednoduse) nevyuzit k prekladu celeho programu do nativni binarky?

JIT je kompilacia casti bytekodu pocas behu programu na JVM za ucelom zrychlenia celeho programu.
JIT kompilator je sucastou JVM a ja si myslim, ze v tomto pripade kompilacia celeho programu do nativnej binarky nikdy nebola cielom, pretoze tym by sa stratili prednosti JVM, ako napr. automaticka sprava pamati, prenositelnost... etc.

Ale ako pises existuju na to ine kompilatory ako napriklad gcj.
 

student

Re:Java JIT Compiler a kompilace do nativniho kodu
« Odpověď #2 kdy: 31. 12. 2013, 00:36:58 »
JIT kompilator je sucastou JVM a ja si myslim, ze v tomto pripade kompilacia celeho programu do nativnej binarky nikdy nebola cielom, pretoze tym by sa stratili prednosti JVM, ako napr. automaticka sprava pamati, prenositelnost... etc.
Keby to kompiloval pri loadovani classy, tak by sa prednosti JVM nestratili. Skor by sa to nedalo dost dobre optimalizovat (neboli by statistiky z behu) a tak by to bolo pozadu, co do vykonu. Staci sa pozriet na JVM s parametrom client, ktory sa tomuto blizi.

Pre dalsie info odporucam clanky tu, na Roote, od pana Tisnovskeho.

Sten

Re:Java JIT Compiler a kompilace do nativniho kodu
« Odpověď #3 kdy: 31. 12. 2013, 00:56:16 »
Kdyz tu je JIT Compiler, jaky je duvod ho (asi celkem jednoduse) nevyuzit k prekladu celeho programu do nativni binarky?

Protože je napsán jako součást JVM a např. nedokáže program načíst, neumí kontrolovat závislosti JARů nebo neobsahuje linker. Takový program by se totiž nakonec stejně musel distribuovat s celým JVM a výhody předkompilovaného programu se tím úplně ztratí.

hugo

Re:Java JIT Compiler a kompilace do nativního kódu
« Odpověď #4 kdy: 31. 12. 2013, 11:13:35 »
JMeter ma zmysel, popripade SoapUI a k nemu takisto LoadUI. Spustitelne z hocikadial :)


mikrom

Re:Java JIT Compiler a kompilace do nativního kódu
« Odpověď #5 kdy: 01. 01. 2014, 23:35:07 »
JMeter ma zmysel, popripade SoapUI a k nemu takisto LoadUI. Spustitelne z hocikadial :)
No a ? To je OT nijako to nesuvisi s JIT.