GraalVM, a máquina virtual poliglota de alto rendimento

Iniciamos a série de artigos sobre o Quarkus:

Quarkus: uma nova alternativa (Parte 1)

Quarkus: uma nova alternativa(parte 2)

Vimos que uma aplicação Quarkus tende a ser bem performática especialmente se fizermos uso da GraalVM, mas o que exatamente isso é?

a definição formal seria:

“GraalVM é uma máquina virtual universal para a execução de aplicações escritas em JavaScript, Python, Ruby, R, linguagens baseadas na JVM como Java, Scala, Groovy, Kotlin, Clojure e linguagens baseadas em LLVM como C e C++”

É interessante mencionar que a GraalVM é resultado de anos e anos de estudos e seu nascimento se deu dentro do Oracle Labs e o primeiro commit em seu repositório é de 2011.

Um dos pontos importantes da GraalVM é a interoperabilidade de linguagens, em um mesmo código você pode ter misturas de linguagens para aproveitar conceitos ou recursos de cada uma:

Screen Shot 2020-03-04 at 01.25.39

Neste caso temos uso de JavaScript, Java e R…

Outra importante feature é a de compilação para imagem nativa. Essa função utiliza o modelo de compilação Ahead of Time e se cria um executável binário para o sistema operacional, esse executável é chamado de Imagem Nativa. E essa imagem nativa traz consigo as classes da aplicação, classes das dependências e alguns componentes importantes como gerenciamento de memória e agendamento de threads e tudo isso em uma máquina virtual bem específica chamada Substrate VM.

Substrate VM é uma máquina virtual otimizada para ambientes de execução para atividades como garbage collection e agendamento de threads e também muito focada em utilizar o modelo Ahead of Time. O resultado dessa salada toda é o baixíssimo tempo de startup da aplicação e também baixo consumo de memória se comparado com uma JVM tradicional que nós vimos no artigo anterior.

A GraalVM possui duas versões para download, a community e a enterprise. A diferença básica entre ambas é que na enterprise você paga pelo suporte prestado pela Oracle e essa implementação possui features de segurança a mais do que na versão community.

Pra concluir, é um projeto extremamente interessante e que vem tomando cada vez mais espaço no mercado, um grande exemplo de uso foi dado nessa talk pelo Chris Thalinger que trabalha no Twitter VM Team(célula dentro do Twitter que cuida das melhorias e otimizações em VMs lá utilizadas) onde ele fala das motivações para usar a GraalVM. Sendo assim, dê uma olhada no projeto, faça o download no site https://www.graalvm.org/downloads/ teste e tire suas próprias conclusões… =)

 

Um comentário em “GraalVM, a máquina virtual poliglota de alto rendimento

Comentários encerrados.

Crie um novo site no WordPress.com
Comece agora
%d blogueiros gostam disto:
search previous next tag category expand menu location phone mail time cart zoom edit close