Compilação AOT
Um compilador é um programa de software que converte código de programação de computador escrito por um programador humano em código binário (código de máquina) que pode ser entendido e executado por uma CPU específica. O ato de transformar o código-fonte em código de máquina é chamado de "compilação". Quando todo o código é transformado de uma só vez antes de atingir as plataformas que o executam, o processo é chamado de Compilação AOT (Ahead-Of-Time) . Ele difere do processo Just-In-Time(JIT).[1]
Ou seja é um processo de compilação que ocorre antes da execução do aplicativo e não durante, como ocorre no processo JIT.[2] O processo AOT compila uma linguagem de alto nível (C, C++, etc.) ou um bytecode (código intermediário. Ex: Java) em código de maquina nativo (dependente do sistema) para que o arquivo binário resultante, seja executado nativamente, ajudando a eliminar sobrecargas de compilação durante a execução. Um exemplo de aplicações que usam esse processo de compilação são: Angular (plataforma de aplicações web),[3] Android Runtime (ambiente de execução do sistema operacional Android), OpenJDK,[4] etc.
A compilação Ahead of Time (AOT) proporciona um tempo de inicialização mais rápido, principalmente quando a maior parte do código é executada na inicialização. No entanto, requer mais memória e mais espaço em disco.[carece de fontes]
A compilação Just-in-time (JIT) perfila a plataforma de destino enquanto é executada e recompila em tempo real para proporcionar melhor desempenho. O JIT gera um código aprimorado porque ele é direcionado à plataforma atual, embora normalmente leve mais tempo para ser executado do que o código compilado do AOT.[1]
Referências
- ↑ a b «Pros and Cons of Ahead-of-Time and Just-in-Time Compilers». ThoughtCo
- ↑ «Tecnologia ART: o que realmente é e quais as suas vantagens? [Atualizado] - AndroidPIT». AndroidPIT
- ↑ «Angular Docs». angular.io. Consultado em 26 de março de 2018
- ↑ «JEP 295: Ahead-of-Time Compilation». openjdk.java.net. Consultado em 26 de março de 2018