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.
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.
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.
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.
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 .
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.
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.