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.

Um compilador JIT opera dentro de um ambiente de execução ou máquina virtual. Quando um método é chamado pela primeira vez, seu bytecode independente de plataforma é compilado em código de máquina nativo e armazenado em cache. Chamadas subsequentes a esse método executam o código nativo de forma rápida diretamente, evitando a sobrecarga de interpretação. Isso introduz um pequeno atraso inicial ou de aquecimento, mas pode resultar em ganhos de desempenho significativos a longo prazo para aplicações de longa duração.

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

Devido ao tráfego de bots de coleta de dados, atualmente superior a 40 mil por dia, este conteúdo é reservado aos membros da comunidade.
> Login < ou > Registrar < (100% gratuito) para acessar isso, assim como todo o restante do conteúdo e das ferramentas restritas.

Relacionado a: JIT, compilação just-in-time, compilação dinâmica, máquina virtual, JVM, CLR, V8, bytecode, otimização adaptativa, tempo de execução.

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)

Princípios relacionados à invenção, inovação e tecnologia

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