Perché si chiama Just In Time?

7

So cosa è il compilatore JIT, ma per quanto riguarda il motivo per cui viene chiamato, ovviamente rileva le eccezioni Just in Time , ma come e perché dovrebbe essere chiamato questo?

Scusa se questo suona un po 'vago.

    
posta Sandeep Bansal 09.07.2012 - 18:39
fonte

5 risposte

22

Il compilatore Just-In-Time non ha nulla a che fare con le eccezioni. Si riferisce a quando il codice è compilato. Alcuni linguaggi, come Java, sono tradotti dalla lingua che si programma con il proprio editor preferito in byte code. In fase di runtime, un codice byte potrebbe essere ulteriormente compilato in codice nativo appena prima dell'esecuzione (da qui il nome, just-in-time). Ciò è in contrasto con alcune lingue, come C, che vengono compilate nel codice macchina nativo al momento in cui si richiama il compilatore.

    
risposta data 09.07.2012 - 18:44
fonte
5

Il nome deriva dalla metodologia di produzione "just in time" , in cui vengono consegnate parti "solo in tempo "da installare. Nella produzione, costa un sacco di soldi per mantenere le parti e gli approvvigionamenti nell'inventario, e produrli e consegnarli quando sono necessari rende un processo più economico / più efficiente.

Il compilatore Java JIT funziona in modo analogo alla produzione JIT: anziché compilare il codice in anticipo e tenerlo in ordine, compila il codice come necessario. Questo ti dà brevi cicli di sviluppo e feedback immediato di un linguaggio interpretato e la velocità di un linguaggio compilato.

    
risposta data 09.07.2012 - 19:15
fonte
2

In .Net, diciamo quando un programma C # è compilato, è compilato in quello che viene chiamato codice "Microsoft intermediate language" (MSIL), questo codice è indipendente dalla macchina. Il codice MSIL non è direttamente eseguibile così com'è. Deve essere convertito (e ottimizzato) in codice che può essere eseguito dal SO di destinazione (e dalla CPU). Tale conversione si verifica quando si richiede un programma .Net per essere eseguito dal compilatore JIT (Just In Time), il JIT produce un eseguibile specifico per il sistema operativo (e la CPU) su cui si sta eseguendo l'applicazione. Quindi il nome Just In Time indica che la compilazione da MSIL al codice OS nativo si verifica solo quando si richiede l'esecuzione del codice. Per ulteriori informazioni, consulta Compilazione di MSIL in codice nativo .

    
risposta data 09.07.2012 - 19:07
fonte
1

Il codice è compilato quando chiamato. È compilato appena in tempo, o poco prima che venga chiamato se preferisci.

Questo vale per i metodi. Se un metodo non viene mai chiamato, non viene mai compilato.

    
risposta data 09.07.2012 - 18:42
fonte
1

Non ha nulla a che fare con le eccezioni.

Il nome riflette il fatto che il software non è compilato in codice macchina finché non sta per essere eseguito. Ciò consente di distribuire un'applicazione su più computer e di applicare le ottimizzazioni specifiche della macchina in fase di runtime.

    
risposta data 09.07.2012 - 18:44
fonte

Leggi altre domande sui tag