Linuxtrent: Re: JIT per Linux

  • From: Matteo Ianeselli <ianezz@xxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Tue, 22 May 2001 17:49:00 +0200

Il generatore automatico di messaggi di Mario Torre ha generato:

 > Ma allora, questo jit e' invocato da javac o da java?

JIT Compiler sta per Just In Time compiler. Essenzialmente, la JVM e`
un interprete (del bytecode Java), tuttavia nulla impedisce di
prendere le varie istruzioni in bytecode ed (ad esempio) espanderle
nella sequenza di istruzioni in linguaggio macchina per la piattaforma
su cui gira la JVM.

Per quello che ne so, quando l'ambiente di runtime parte (i.e. java
nomefile.class), inizia ad interpretare il bytecode e, in sintesi, a
far andare l'applicazione. Nel contempo, un thread parte e inizia a
tradurre il bytecode in istruzioni native, e quando ha finito il
controllo viene passato al codice nativo. Un'altra possibilita` e` che
il bytecode venga tradotto in un sol colpo prima di essere eseguito
(i.e. all'atto del caricamento del bytecode da un file o quant'altro).

Quindi la risposta e` java (il runtime), non javac (il compilatore).

Purtroppo, per come l'ho capita io, le informazioni che si possono
recuperare dal bytecode java sono di qualita` inferiore a quello che
servirebbe per poter fare anche le ottimizzazioni che servono
(i.e. inlining, srotolamento dei cicli ottimizzato per architettura,
etc.), e queste informazioni si trovano (nientepopodimenoche`!) nei
sorgenti. 

Tempo fa avevo visto qualcuno lavorare ad un generico ottimizzatore di
bytecode (nel senso di fare inlining ed altre cose), con risultati
alle volte insignificanti (i.e. +1% in velocita`), alle volte
sorprendenti (+50%, ma si trattava di un caso piuttosto
particolare). Mi pareva di aver postato in lista l'URL.

 > Non ci capisco piu' nulla... :)

Beh, e` anche perche` quando uno dice Java in realta` si puo` riferire
a tre cose diverse:

1) ``Java'' inteso come ``Il linguaggio Java'';

2) ``Java'' inteso come ``La macchina virtuale di Java'' o JVM;

3) ``Java'' la libreria di serie.

Se fai questa distinzione, la vita e` piu` semplice, IMHO.
-- 
UNIX diapers by Pannolini USPTO 2039887  http://www.uspto.gov
Matteo Ianeselli      ianezz AT sodalia.it  (+39) 0461 316452
Visita il LinuxTrent:            http://www.linuxtrent.it
-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con SOGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx


Other related posts: