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