Product Design, Manufacturing & Innovation Resources
Casa » Compilazione Just-In-Time (JIT)

Compilazione Just-In-Time (JIT)

1990
Ingegnere informatico che ottimizza la compilazione JIT in uno spazio di lavoro moderno.

(Immagine generata a solo scopo illustrativo)

Just-in-time La compilazione JIT (Just-In-Time) è un approccio ibrido che combina caratteristiche sia della compilazione che dell'interpretazione. Invece di compilare il codice in anticipo (AOT), un JIT compilatore Traduce il bytecode in codice macchina nativo in fase di esecuzione, immediatamente prima dell'esecuzione. Ciò consente ottimizzazioni dinamiche basate sul comportamento effettivo in fase di esecuzione, spesso migliorando le prestazioni rispetto alla semplice interpretazione.

Un compilatore JIT opera all'interno di un ambiente di runtime o di una macchina virtuale. Quando un metodo viene chiamato per la prima volta, il suo bytecode indipendente dalla piattaforma viene compilato in codice macchina nativo e memorizzato nella cache. Le chiamate successive a quel metodo eseguono direttamente il codice nativo veloce, bypassando il sovraccarico dell'interpretazione. Ciò introduce un piccolo ritardo all'avvio o al riscaldamento, ma può comportare significativi miglioramenti delle prestazioni a lungo termine per le applicazioni di lunga durata.

Il vantaggio principale della compilazione JIT è la capacità di eseguire ottimizzazioni adattive o guidate da profili. Il runtime può monitorare l'esecuzione del codice, raccogliendo statistiche sui percorsi di codice "caldi" (eseguiti frequentemente) e sui tipi di dati elaborati. Queste informazioni a runtime, non disponibili per un compilatore AOT statico, consentono al JIT di prendere decisioni di ottimizzazione più consapevoli. Ad esempio, può eseguire l'inlining speculativo delle chiamate a metodi virtuali se osserva che un particolare tipo concreto viene sempre utilizzato. Se in seguito questa ipotesi si rivela errata, il JIT può eseguire una "deottimizzazione" e ripiegare su un percorso di esecuzione più sicuro. Questa natura dinamica rende la compilazione JIT estremamente efficace per i linguaggi orientati agli oggetti e dinamici.

UNESCO Nomenclature: 1203
- Informatica

Tipo

Software/Algoritmo

Interruzione

Sostanziale

Utilizzo

Uso diffuso

Precursori

  • compilatori ahead-of-time (aot)
  • interpreti
  • p-code e altri sistemi bytecode
  • ricerca in linguaggi dinamici come smalltalk e lisp
  • concetti di macchina virtuale

Applicazioni

  • macchina virtuale Java (JVM)
  • .net Common Language Runtime (CLR)
  • motori javascript nei browser web (ad esempio, v8)
  • pypy, un'implementazione Python ad alte prestazioni
  • motori di esecuzione delle query del database

Brevetti:

NA

Idee e potenziali innovazioni

A causa dell'eliminazione del traffico generato dai bot, che attualmente supera i 40.000 al giorno, questo contenuto è riservato ai membri della community.
> Accedi O > Registrati L'accesso a questo contenuto, così come a tutti gli altri contenuti e strumenti riservati, è (100% gratuito).

Argomenti correlati: JIT, compilazione just-in-time, compilazione dinamica, macchina virtuale, JVM, CLR, V8, bytecode, ottimizzazione adattiva, runtime.

Contesto storico

Compilazione Just-In-Time (JIT)

1980
1986-01-01
1990
1990
1993
1998
2010
1980
1982-07-01
1988-06-01
1990
1993
1997-04-23
2001
2010

(se la data è sconosciuta o non rilevante, ad esempio "meccanica dei fluidi", viene fornita una stima approssimativa della sua notevole comparsa)

Invenzioni, innovazioni e principi tecnici correlati

Le immagini a grandezza naturale e i download sono disponibili, 100% gratuitamente, solo per i membri registrati.

> Login <