quarta-feira, 5 de outubro de 2011

JavaOne 2011 Day 3

O dia comecou como os outros: com um keynote de abertura ministrado novamente por Adam Messinger que infelizmente nao consegui assistir. Mas conversei com muita gente e o keynote foi bem simples e com poucas surpresas - muitas pessoas comentaram que parecia uma conversa feita para os acionistas da Oracle ao inves de desenvolvedores. Algumas coisas, porem, foram anunciadas:
-teremos uma versao nova do java a cada 2 anos (ao inves dos 18 meses planejados ateh hoje) - a Oracle percebeu que nao era possivel entregar todas as funcionalidades planejadas em intervalos de 18 meses. Desse modo, teremos o JDK8 (com lambda, virtual extension methods e outras coisas) em meados de 2013 e JDK9 (jigsaw, coroutines, generics reificados, entre outras coisas) em meados de 2015.
-Twitter entrou no JDK e no JCP, muito provavelmente para melhorar o suporte da JVM em outras linguagens

Com isso, vamos direto as Technical Sessions:

Everything I Ever Learned About JVM Performance Tuning at Twitter - Attila Szegedi do Twitter
A palestra falou basicamente das diferentes opcoes de 'tunning' da JVM para minimizar, principalmente, a latencia e tempo de resposta das aplicacoes. Attila mostrou os diferentes tipos de GC, como as classes e objetos "ocupam" espaco na memoria e o que pode ser feito para minimizar o uso de memoria (inclusive em casos extremos). O palestrante tambem frisou que eh muito importante fazer profiling mesmo de bibliotecas largamente utilizadas - por exemplo, o twitter enfrentou alguns problemas com Thrift e a biblioteca padrao de scala. Por ultimo, foram sugeridas algumas configuracoes que podem ser feitas em relacao ao GC.

Real Java Enterprise Testing - Aslak Knutsen e Dan Allen da Red Hat
Esta apresentacao foi um showcase para o projeto Arquillian (e demais projetos). Este framework parece muito promissor para testar o comportamento de uma aplicacao em diversos ambientes diferentes (WAS, JBossAS, Tomcat) de forma automatizada. O framework se integra com o JUnit, eh capaz de pegar arquivos gerados pelo maven e fazer o deploy de mais de um sistema e em mais de um servidor de aplicacoes.

Blazing JVM Performance: Trends Fueled by the Latest Hardware and JVM Optimizations - Shirish Aundhe da Intel e Dave Keenan da Oracle
Esta palestra expandiu um pouco o keynote da Intel de ontem, falando um pouco sobre a parceria entre a Intel e a Oracle, falando um pouco sobre como as novas instrucoes dos processadores influenciam o desenvolvimento da JVM e como a JVM se beneficia (ou nao) das novas instrucoes, como vetorizacao de loops internos e otimizacoes de operacoes de ponto flutuante. Eles tambem mostraram como pequenas otimizacoes na bibliotecas podem influenciar o uso do cache do processador. Por ultimo, o engenheiro da Oracle mostrou algumas flags "escondidas" da JVM que ligam otimizacoes ainda nao totalmente testadas - como por exemplo, -XX:+AgressiveOpts (ativa otimizacoes mais agressivas), -XX:+UseCompressedStrings (comprime Strings para array de bytes quando possivel), etc.

Squashing the Vulnerabilities: Engineering Security into Your Applications -
James Gould e Lin Jia da Verisign
Os palestrantes mostraram algumas das principais vulnerabilidades que sao introduzidas em um sistema de maneira nao intencional, bem como maneiras de configurar o Security Manager para isolar funcionalidades que precisam de permissoes especiais.

How Do You Update Your Java EE App in Production? - Jevgeni Kabanov CTO da Zero TurnAround
Era para ser um BOF, mas acabou mais sendo uma sessao de pesquisa sobre atualizacao de aplicacoes, com um pouco de propaganda do LiveRebel no final. O produto me pareceu bem interessante e tem potencial para acabar (ou pelo menos diminuir drasticamente) as dificuldades de se atualizar um sistema em producao.

Oracle Java SE: VM and Performance Technologies - Com o time de Performance do Hotspot e JRockit
Este foi bem um Q&A com o time responsavel pela performance do HotSpot e do JRockit. Foi uma sessao muito legal, explicando varias nuances do GC (que merecem um artigo proprio em algum momento) e como o JRockit Mission Control pode ajudar a detectar problemas de performance mesmo em sistemas em producao.

PS: eu nao sei o que esta acontecendo com a formatacao do blog, mas os artigos ficam sempre diferentes de como eu estou editando...
PS2: finalmente descobri o que o JHome tem a ver com a GlobalCode - mas vou apenas linkar para este artigo no blog deles.

Um comentário:

  1. Várias coisas legais e promissoras! Bom ver que os problemas que temos são problemas de todos! Diversas soluções e práticas acabamos reinventando na Maps, mas é bom ver que estamos no caminho certo que podemos trilhar o caminho com base nos erros e acertos de outros.

    ResponderExcluir