JIT: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
KLBot2 (discussão | contribs)
m Bot: A migrar 1 interwikis, agora providenciados por Wikidata em d:Q110546
Linha 8:
Nos ambientes que oferecem o recurso de JIT, a máquina virtual responsável pela execução dos bytecodes resultantes da compilação do programa fonte realiza a tradução desse bytecode para código de máquina nativo enquanto o executa. No caso mais comum, cada trecho de código é traduzido no instante em que está para ser executado pela primeira vez, daí derivando o nome "[[just-in-time]]".
 
A ideia de um sistema que suporta o conceito de JIT é combinar as vantagens da compilação tradicional - que converte o código fonte diretamente para código de máquina - e do conceito de máquinas virtuais, baseadas em bytecode. A custosa tarefa de [[análise sintática|analisar]] e verificar o código fonte do programa original é realizada pelo processo de compilação para bytecode, em [[tempo de compilação|tempo de desenvolvimento]]. Também nesta fase, são realizadas todas as possíveis otimizações baseadas na análise do código fonte, obtendo-se um conjunto de bytecodes otimizados e [[análise semântica|semanticamente]] equivalente ao programa fonte original. O programa objeto resultante deste processo de compilação é [[portabilidade (informática)|transportável]] para as várias arquiteturas distintas que suportam a máquina virtual alvo da compilação, isto é, que possuem um interpretador de bytecode. Durante a execução do programa, o compilador JIT realiza apenas a tradução de bytecode para código de máquina, querelativo éa umainterpretação. Isso resulta numa tarefa muito mais simples e mais rápida.
 
Esse mecanismo de execução apresenta um desempenho significativamente superior ao processo clássico de interpretação. Isto porque o código de máquina resultante da compilação JIT é armazenado na [[Memória (computador)|memória]], garantindo que o trecho de código em questão não será mais recompilado ou reinterpretado sempre que, durante a execução do programa, for novamente acionado. Além disso, muitos compiladores JIT possuem mecanismos para realizar otimizações adicionais nos trechos de código do programa que são executados com maior freqüência.