Product Design, Manufacturing & Innovation Resources
Lar » Compilação Just-In-Time (JIT)

Compilação Just-In-Time (JIT)

1990
Engenheiro de software otimizando a compilação JIT em um espaço de trabalho moderno.

(Imagem gerada apenas para fins ilustrativos)

Na hora certa A compilação JIT (Just-in-Time) é uma abordagem híbrida que combina características de compilação e interpretação. Em vez de compilar o código antecipadamente (AOT), um compilador JIT compilador Traduz bytecode em código de máquina nativo em tempo de execução, imediatamente antes de ser executado. Isso permite otimizações dinâmicas com base no comportamento real em tempo de execução, muitas vezes melhorando o desempenho em comparação com a interpretação pura.

A JIT compilador operates within a runtime environment or virtual machine. When a method is called for the first time, its platform-independent bytecode is compiled into native machine code and cached. Subsequent calls to that method execute the fast, native code directly, bypassing the overhead of interpretation. This introduces a small startup or warm-up delay but can result in significant long-term performance gains for long-running applications.

A principal vantagem da compilação JIT é a capacidade de realizar otimização adaptativa ou guiada por perfil. O ambiente de execução pode monitorar a execução do código, coletando estatísticas sobre quais caminhos de código são "quentes" (executados com frequência) e os tipos de dados que estão sendo processados. Essas informações do ambiente de execução, indisponíveis para um compilador AOT estático, permitem que o JIT tome decisões de otimização mais informadas. Por exemplo, ele pode realizar a inlining especulativa de chamadas de métodos virtuais se observar que um determinado tipo concreto é sempre usado. Se essa suposição se provar falsa posteriormente, o JIT pode realizar a "desotimização" e recorrer a um caminho de execução mais seguro. Essa natureza dinâmica torna a compilação JIT extremamente eficaz para linguagens orientadas a objetos e dinâmicas.

UNESCO Nomenclature: 1203
Ciência da Computação

Tipo

Software/Algoritmo

Interrupção

Substancial

Uso

Uso generalizado

Precursores

  • compiladores ahead-of-time (aot)
  • intérpretes
  • p-code e outros sistemas de bytecode
  • pesquisa em linguagens dinâmicas como smalltalk e lisp
  • conceitos de máquina virtual

Aplicações

  • Máquina virtual Java (JVM)
  • .net common language runtime (clr)
  • mecanismos javascript em navegadores web (ex: v8)
  • pypy, uma implementação de alto desempenho em Python
  • mecanismos de execução de consultas de banco de dados

Patentes:

NA

Ideias de Inovação Potencial

  • predictive jit compilation that compiles code paths before they are even executed based on probabilistic models
  • cross-device jit compilation where a powerful server performs jit for a low-power client
  • jit compilers for sql that re-optimize query plans mid-execution based on intermediate data statistics
  • secure jit compilers that insert runtime security checks and sandboxing into the generated code
  • jit compilers for configuration files (e.g., nginx, apache) to speed up request handling
  • energy-aware jit compilers that choose optimizations to balance performance and power consumption
  • jit compilers that target fpgas, reconfiguring hardware at runtime
  • de-optimizing jit compilers that can revert to a simpler compilation if an optimization assumption proves false
  • distributed jit compilation for microservices architectures
  • jit compilers that generate code for gpu execution on the fly
Related to: JIT, no momento exato compilation, dynamic compilation, virtual machine, jvm, clr, v8, bytecode, adaptive optimization, runtime.

Contexto histórico

Compilação 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

(Caso a data seja desconhecida ou irrelevante, por exemplo, "mecânica dos fluidos", é fornecida uma estimativa aproximada de seu surgimento notável)

10º ano aniversário

Imagens em tamanho real e downloads estão disponíveis apenas, 100% gratuitos, para membros registrados.