Taverna /dev/All

Spring Native: alguém já experimentou? Declínio da reflection?

image

Pessoal, alguém aqui já experimentou o Spring Native em seus projetos? Tá na versão 0.x ainda, então ainda é bastante embrionário, mas aponta um caminho interessante.

Quem nunca viu, segue a documentação: Spring Native documentation

A ideia é termos imagens nativas do nosso projeto reduzindo tempo de startup e consumo de memória que, em grande parte, vêm devido ao uso da API de reflexão do Java.

Na GOTO 2019 o Grame Rocher (criou Grails e Micronaut) mostra os problemas as limitações do uso de reflexão num mundo servlerless, o que motivou a criação do Micronaut, mostrando que ao contrário do que alguns falam a respeito do Java neste mundo serverless. E a gente tem outras iniciativas como o Quarkus também que vão nesta direção, focando em AOT pra ganharmos tempo de início.

O que me faz pensar: será que estamos começando a ver o declínio da API reflection?

1 Curtida

Muito interessante! Obrigado por compartilhar, Kiko!
Parece que a tendência é bem essa mesmo. Faz muito sentido. Acho que você acertou na mosca.

Recentemente fiquei conhecendo também outras ferramentas que parecem ser uma resposta pra tentar dar uma melhorada nas aplicações já existentes: o jpackage e o jlink. Um empacota seu aplicativo num executável - escondendo o comando “java -jar” - e o outro enxuga a “Runtime” removendo as partes que não estão sendo utilizadas.

Mas não tem a compilação “ahead-of-time” que, pelo que entendi, compila direto pra executável nativo sem passar pelo estágio de transpilação para bytecode.
Impressionante é a redução do uso de memória que parece que vem de lambuja.

1 Curtida

opa Pedro: você chegou a ver esta redução no consumo de memória na prática?

Não cheguei a ver… Por isso pra mim é mágico. Ou pelo menos a promessa dela hehe

itexto