Master
Ferramentas

Graal Native Image

Published: Apr 13, 2021
Apr 2021
Avalie?

Graal Native Image é uma tecnologia que compila código Java em um binário nativo do sistema operacional — na forma de um executável estaticamente vinculado ou uma biblioteca compartilhada. Uma imagem nativa é otimizada para reduzir o consumo de memória e o tempo de inicialização de uma aplicação. Nossos times têm usado com sucesso imagens nativas do Graal, executadas como pequenos contêineres do Docker na arquitetura sem servidor, em que a redução do tempo de inicialização é importante. Embora projetada para uso com linguagens de programação como Go ou Rust, que compilam nativamente e exigem binários menores e tempos de inicialização mais curtos, a imagem nativa do Graal pode ser igualmente útil para times que têm outros requisitos e desejam usar linguagens baseadas em JVM.

O Graal Native Image Builder, native-image, oferece suporte a linguagens baseadas em JVM — como Java, Scala, Clojure e Kotlin — e cria executáveis em vários sistemas operacionais como Mac OS, Windows e várias distribuições Linux. Uma vez que ele requer uma suposição de mundo fechado, na qual todo o código é conhecido no tempo de compilação, é necessária uma configuração adicional para recursos como reflection ou dynamic class loading, uma vez que os tipos não podem ser deduzidos apenas no tempo de compilação do código.