Java Performance: The Definitive Guide. Desempenho Java: O Guia Definitivo
518 páginas
Portuguese
PDF
4.5

Java Performance: The Definitive Guide. Desempenho Java: O Guia Definitivo

Java Performance: The Definitive Guide. Desempenho Java: O Guia Definitivo

Autor:

Ano:

Resumo:

Introdução

O livro «Java Performance: The Definitive Guide» (em português — «Desempenho Java: O Guia Definitivo») de Scott Oaks não é apenas mais um guia de referência sobre a linguagem. É um trabalho fundamental dedicado à compreensão profunda de como a máquina virtual Java (JVM) funciona, como medir e melhorar o desempenho de aplicações. Publicado em 2020 (segunda edição), o livro abrange as versões Java 11 e 14, tornando-o relevante para projetos modernos. No site PythonLib, falamos frequentemente sobre Python, mas entender os princípios de desempenho em Java ajuda a ter uma visão mais ampla da otimização — muitos conceitos (coleta de lixo, profiling, gerenciamento de memória) são universais.

Sobre o que é este livro?

Scott Oaks, veterano da Sun Microsystems e Oracle, concentrou-se nos aspetos práticos do desempenho. O livro é composto por vários blocos lógicos:

  • Fundamentos da JVM: arquitetura HotSpot, compilação (C1, C2, Graal JIT), sistema de tipos, gerenciamento de memória.
  • Coleta de lixo (GC): análise detalhada de todos os coletores — G1, ZGC, Shenandoah, Epsilon. Algoritmos, configuração, logging.
  • Profiling e monitoramento: ferramentas (JFR, JMC, VisualVM, async-profiler), análise de dumps, benchmarking com JMH.
  • Otimização de código: trabalho com threads, sincronização, I/O, trabalho com bancos de dados, JPA/Hibernate.
  • Configuração do sistema operacional e contentores: impacto do Docker, cgroups, NUMA, sistemas de ficheiros.

Para quem é este livro?

O livro é direcionado a desenvolvedores Java experientes, arquitetos e engenheiros DevOps que já sabem escrever código, mas querem entender por que ele é lento e como corrigir isso. Iniciantes terão dificuldade — pressupõe-se conhecimento de Java em nível middle+.

O que o leitor aprenderá?

  • Como funciona a compilação JIT e como gerenciá-la (flags, desotimização).
  • Como escolher e configurar o coletor de lixo para uma carga específica (latência vs throughput).
  • Como fazer profiling de uma aplicação sem interrompê-la (JFR, async-profiler).
  • Como escrever microbenchmarks com JMH e evitar armadilhas.
  • Como otimizar o gerenciamento de memória: evitar vazamentos, usar caches de forma eficiente.
  • Como configurar a JVM em contentores (Docker, Kubernetes).
  • Como diagnosticar problemas com threads, bloqueios, I/O.

Pontos fortes do livro

A primeira coisa que salta à vista é a profundidade e atualidade. Oaks não apenas parafraseia a documentação, mas explica os mecanismos internos da JVM ao nível do código-fonte. A segunda é a orientação prática: cada capítulo contém exemplos concretos de configurações, flags e cenários. A terceira é a estruturação: o livro é lido como um manual, mas também pode ser usado como referência. Vale a pena destacar os capítulos sobre G1 GC e ZGC — são o melhor material em português/inglês sobre o tema.

Desvantagens: o livro não é para iniciantes, requer leitura atenta. Algumas secções (por exemplo, sobre GraalVM) poderiam ser expandidas, mas isso é compensado por referências a fontes adicionais.

A quem é recomendado

Leitura obrigatória para todos que trabalham com serviços Java de alta carga, otimizam latência ou throughput, bem como para quem deseja migrar para versões modernas do Java (11+) e usar novos GCs. O livro também será útil para desenvolvedores de outras linguagens (incluindo Python) — entender o funcionamento da JVM e do GC amplia horizontes e ajuda a escrever código mais eficiente.

No site PythonLib, valorizamos muito os guias técnicos de qualidade. «Java Performance: The Definitive Guide» é exatamente isso: autoritário, completo, prático. Recomendamos.

Recommendations