Na semana passada, em São Petersburgo, foi realizada a conferência internacional Joker em Java. Pedimos aos nossos caras que a visitaram para contar um pouco sobre a organização e as performances mais interessantes, na opinião deles. Alguém notou o mais hype e diversão, alguém - o mais relevante e útil. No entanto, leia sobre isso em primeira mão.

Este ano, houve visivelmente mais visitantes e stands de patrocinadores, o que levou a pequenos congestionamentos nos corredores, na área de exposições e em jantares.
Os relatórios, como sempre, foram realizados em 4 fluxos e 2 mini-fluxos nos estandes de demonstração na área de exibição. Pelo menos 1 relatório interessante sempre esteve nesse esquema. Entre os discursos, você pode conversar com o orador na área de discussão ou ouvir mini-apresentações em estandes de demonstração.
E agora sobre os próprios relatórios e por que participar de conferências.
Andrey Gromov rjhdby ,
Desenvolvedor de back-end da FunCorpPara mim, uma viagem à conferência é uma oportunidade de sair do contexto cotidiano. Para olhar para coisas familiares de outros pontos de vista e para desconhecidas - basta olhar. E o material mais importante trazido da conferência são as páginas escritas em um caderno. Não com um resumo dos relatórios, é claro, mas com pensamentos que surgiram no processo de ouvi-los.
Deste ponto de vista, o Jocker 2019 passou por mim sob o signo da JNI e o interior de uma máquina virtual.
Três relatórios despertaram o maior interesse, além de Baruch, que também poderia nos contar sobre os relatórios contábeis da tenda com shawarma, para que você não se afaste.
- Cliff Click. O mar dos nós e o HotSpot JIT
Um relatório maravilhoso sobre a cozinha interna HotSpot C2 JIT de uma pessoa que realmente entende isso melhor do que quase todos.
É improvável que esse conhecimento afete meu trabalho, mas meia página de um caderno foi reabastecida com notas marcadas como "leitura" e "abordagem pode ser aplicada em XXX", o que é legal.
- Ionut Balosin. Uma corrida de dois compiladores: GraalVM JIT versus HotSpot JIT C2
Jonuts falou sobre algumas diferenças importantes na implementação desses dois compiladores e seu impacto no desempenho em certos tipos de tarefas. À primeira vista, parece que o relatório é simples: bem, eu o peguei e o testei, mas isso é apenas à primeira vista, até você se aprofundar nos detalhes do que foi dito e mostrado. E então vem a compreensão da quantidade de trabalho realizado pelo palestrante, a fim de nos mostrar esses "gráficos simples".
- Dmitry Pisklov. Microsserviços responsáveis por alguns microssegundos - amigos e inimigos
Sangue, tripas - tudo como eu amo. Essa pessoa ensinará a você a maneira errada de fazer os microsserviços errados, mas com rapidez de espaço. Suspeito que, após este relatório, eu tenha substituído muitas cadeiras por estofados queimados.
Aqui e sobre inseguros, e sobre mmap, e sobre como ajustar os parâmetros do kernel, e sobre sua pilha de rede, e sobre tudo o mais sob o lema "desempenho na vanguarda"!
Evgeny Zakharov nerumb ,
Desenvolvedor de back-end da FunCorp
- Sergey Kuksenko. O Java precisa de tipos "em linha"? Olhar estreito do engenheiro de desempenho no projeto Valhalla
Um relatório interessante de um engenheiro da Oracle, que compartilhou detalhes internos do trabalho em Valhalla. Eu tinha dúvidas sobre o motivo de Valhalla não ter vindo para Java por tanto tempo, e esse relatório respondeu a muitas delas.
Os tipos de valor não são tão fáceis de implementar em Java, e você precisa salvar literalmente em unidades de "bytes". Sergey falou sobre alguns truques que eles tiveram que fazer para não alterar a estrutura de armazenamento de objetos em Java e colocar todas as informações necessárias neles. E o que foi especialmente surpreendente foi que Valhalla não apenas torna o Java mais rápido, mas também há consequências negativas. É necessário complicar o código existente com os tipos Value e, em algumas situações, é obtida uma leve degradação no desempenho (embora, segundo Sergey, no momento isso não seja superior a 10% nos cenários mais negativos). Mas o trabalho ativo ainda está em andamento e esperamos que a equipe da Oracle seja capaz de otimizar os cenários negativos e, finalmente, converter o Valhalla em Java.
Como um bônus, Sergey pediu a todos que se preocupam em experimentar o Valhalla (em breve estará disponível na assembléia do OpenJDK quando a bandeira estiver ativada) e verificar seu trabalho em seus scripts. É altamente recomendável informar a equipe de desenvolvimento da forte degradação da produtividade, se houver.
- Tagir Valeev. Java 9-14: Pequenas otimizações
Como sempre, um relatório interessante de Tagir, que não precisa ser apresentado. Havia muitas coisas interessantes sobre as melhorias internas que estão apenas se tornando disponíveis com a atualização para a nova versão do Java. Tagir deu muitos exemplos, entre os quais o mais memorável foi o
abs
, que, ao que parece, não tinha para onde otimizar ainda mais. a implementação do método em si consistia em apenas uma linha de código. Mas esse método também foi agilizado, tornando-o um método
intrinsic
. Havia muitos outros exemplos em que uma simples mudança para a próxima versão do Java aumenta a velocidade, às vezes até em várias ordens de magnitude, como no mesmo caso. Aconselho que você definitivamente veja o relatório gravado para aqueles que ainda não o viram.
Oleg Zolotarev OlegXxl ,
Desenvolvedor de back-end da FunCorp
- Juergen Hoeller e Josh Long. Mola reativa revisitada
Josh "recoziu" todo o discurso, enquanto o próprio relatório fala muito bem sobre o Reativo em literalmente todas as suas manifestações na versão mais recente do Spring. Eles também falaram sobre integração com o RSocket (você sabia que, pela primeira vez, o Spring Starter na versão estável usa uma dependência instável?). Obviamente, essas informações também podem ser obtidas em manuais oficiais, mas aqui eram de primeira mão e de forma agregada.

- Baruch Sadogursky. DevOps para desenvolvedores (ou contra eles ?!)
Baruch arrancou as cobertas na palestra de encerramento do primeiro dia e se saiu muito bem! Neste relatório, você aprenderá como e de onde veio a ideologia do DevOps, quem é o único que implementa sua “interface”. Foi interessante ouvir sobre o que realmente é o "melhor código" (seu DoD) e o que o artesanato em software e o DevOps têm em comum.
Infelizmente, a palestra de encerramento do segundo dia não foi tão "inflamável" quanto no ano passado, quando o Dr. Kurpatov falou, e a discussão desse discurso nas salas de bate-papo levou mais um mês.
No entanto, não vamos à conferência para isso, mas em todos os outros aspectos, foi um sucesso.
Muito obrigado a todos os organizadores e palestrantes! Vejo você nas próximas conferências!