DEV Community

Cover image for Quarkus. Quando optar pelo Nativo ou JVM?
Jonael Lemos
Jonael Lemos

Posted on

Quarkus. Quando optar pelo Nativo ou JVM?

Pra iniciar esta conversa, penso que essa decisão é bem necessária quando se fala em perfomance e entrega de produtos escaláveis e flexiveis. Principalmente quando estamos falando sobre o quanto de recurso lógico (memória, processamento) será consumido _versus _ quanto de recurso financeiro seu bolso está disposto a manter.
Sabemos que os principais serviços em cloud, podem gerar uma bola de neve quando não configurados da forma correta. Mas por uma visão otimista, que tal tentar evitar o problema na concepção do projeto?

O que podemos entender à respeito de uma maneira prática:

Quarkus Nativo:

Compilação Nativa: O Quarkus nativo permite a compilação do código fonte para um executável nativo, o que melhora significativamente o tempo de inicialização e o consumo de recursos. Isso é especialmente crucial em ambientes de contêineres e serverless.
Menor Footprint:Projetos Quarkus nativos têm um footprint menor, resultando em tamanhos de imagem de contêiner mais compactos. Isso é vantajoso em ambientes em nuvem, onde a eficiência no uso de recursos é fundamental.
Tempo de Inicialização Rápido:A compilação nativa contribui para tempos de inicialização extremamente rápidos, o que é crucial em cenários de microservices onde a elasticidade e a rápida resposta são essenciais.
GraalVM: O Quarkus nativo geralmente utiliza a GraalVM para compilação nativa, proporcionando otimizações significativas.

Quarkus modo JVM:

Flexibilidade do Código Fonte: Projetos executados na JVM oferecem uma gama mais ampla de opções de frameworks e bibliotecas, devido à vasta adoção da JVM. Isso permite uma maior flexibilidade na escolha de tecnologias.

JIT Compilation: Ao contrário da compilação nativa, a JVM usa a compilação Just-In-Time (JIT), o que pode resultar em um tempo de inicialização ligeiramente mais longo, mas oferece otimizações dinâmicas durante a execução.

Ecossistema Java Padrão: Projetos JVM se beneficiam do vasto ecossistema Java, incluindo uma ampla variedade de bibliotecas e ferramentas estabelecidas.

Facilidade de Desenvolvimento: O desenvolvimento em projetos JVM pode ser mais simples, pois há uma grande quantidade de ferramentas e recursos disponíveis para facilitar o processo de desenvolvimento.

Em resumo, a escolha entre Quarkus nativo e uma API na JVM depende dos requisitos específicos do projeto. Projetos que demandam alta eficiência em termos de recursos e tempo de inicialização podem se beneficiar do Quarkus nativo, enquanto projetos que valorizam a flexibilidade e o ecossistema Java podem optar por APIs na JVM.
Até a próxima.

Top comments (0)