Performance com Java é uma utopia?

Muita gente diz que Java ficou para trás no quesito performance... e isso não deixa de ser uma mentira. As stacks Java tradicionais foram projetadas para aplicativos monolíticos com longos tempos de inicialização e grandes requisitos de memória em um mundo em que a nuvem, os contêineres e o Kubernetes não existiam.

Mas o que seria Java?

Java é uma linguagem de programação de propósito geral, orientada a objetos e de alto nível. Foi desenvolvida pela Sun Microsystems na década de 1990 e é conhecida pela sua portabilidade, o que significa que os programas escritos em Java podem ser executados em diferentes tipos de dispositivos sem a necessidade de recompilação. A plataforma Java é composta por duas principais partes: a linguagem de programação Java propriamente dita e a Máquina Virtual Java (Java Virtual Machine - JVM). Os pilares do Java desde sua concepção foram: * Portabilidade; * Orientação a Objetos; * Multithreading; * Integrações (Frameworks);

Mas todos eles até o momento não trazia como core a grande melhoria necessária em performance e custos, isso até a chegada do Quarkus.

Sobre o Quarkus...

O Quarkus foi criado para permitir que os desenvolvedores Java criem aplicativos para um mundo moderno e nativo da nuvem. O Quarkus é uma estrutura Java nativa do Kubernetes adaptada para GraalVM e HotSpot, criada a partir das melhores bibliotecas e padrões Java. O objetivo é tornar o Java a plataforma líder em Kubernetes e ambientes sem servidor, oferecendo aos desenvolvedores uma estrutura para abordar uma ampla gama de arquiteturas de aplicações distribuídas.

Comparativo de performance Spring boot vs Quarkus...

Neste exemplo bem bacana feito pelo Victor Leandro, foi criado duas APIs usando o framework Spring e Quarkus, as quais estão sendo executadas em containers Docker. Para analisar o consumo de memória, CPU e tempo de resposta, foi utilizado uma combinação de ferramentas como K6, Prometheus e Grafana. Dessa forma, será possível observar visualmente a diferença de consumo de memória, utilização da CPU e tempo de resposta entre as duas abordagens, demonstrando de forma clara o ganho real de desempenho. Vejamos:

Uso de CPU

Uso de Memoria

Conclusão

Neste resumo, vale lembrando que nada é uma bala de prata (Isso vale pra vocês golangers kkkk), mas vale o estudo sobre as novas tendências e evoluções tech. Quarkus por experiência própria é algo que não traz uma curva de aprendizado grande, pra quem já tem a familiaridade com Java, e de quebra dependendo do propósito, você ganhará performance!

Fontes aqui!