Desempenho de aplicações C++: otimização, perfilamento e aceleração de código
Desempenho de aplicações C++: otimização, perfilamento e aceleração de código
Resumo:
As aplicações C++ modernas enfrentam demandas crescentes por velocidade e eficiência. O livro "Desempenho de aplicações C++" é um guia prático que o ajudará a transformar código "que apenas funciona" em uma solução de alto desempenho. O autor, Alexei Petrov, compartilha técnicas e estratégias comprovadas usadas pelos principais desenvolvedores de engines de jogos, sistemas financeiros e servidores de alta carga.
Sobre o que é este livro?
Não é uma coleção de conselhos abstratos. Você percorrerá o ciclo completo de trabalho com desempenho: desde a detecção de gargalos com profilers (perf, Valgrind, Intel VTune) até a aplicação de otimizações de baixo nível. Atenção especial é dada a:
- Gerenciamento de memória: alocadores, cache misses, alinhamento de dados e pools de objetos.
- Multithreading e concorrência: minimização de locks, estruturas lock-free, operações atômicas.
- Otimização de algoritmos e estruturas de dados: desde a escolha do contêiner até o uso de instruções SIMD.
- Otimizações do compilador: como escrever código que seja amigável ao otimizador (RVO, constexpr, atributos).
- Perfilamento e benchmarking: como não errar nas medições e interpretar os resultados.
Para quem é este livro?
- Desenvolvedores C++ que desejam melhorar o desempenho de seus projetos.
- Engenheiros que trabalham com jogos, servidores de alta carga, sistemas embarcados ou aplicações financeiras.
- Estudantes e profissionais que estão migrando do código "acadêmico" para soluções de produção.
O que você aprenderá?
Após a leitura, você será capaz de:
- Encontrar e eliminar "gargalos" no código C++.
- Escrever código que utilize eficientemente o cache da CPU e a memória.
- Projetar sistemas multithread sem condições de corrida e deadlocks.
- Aplicar recursos modernos do C++17/20 para acelerar cálculos.
- Medir o desempenho corretamente e evitar erros comuns de benchmarking.
O livro contém muitos exemplos, snippets prontos para uso e checklists para auditoria de código. É um guia de referência ao qual você retornará em cada refatoração ou otimização.
Atenção: o livro pressupõe conhecimento sólido da sintaxe C++ e conceitos básicos de POO. Se você está começando a aprender o idioma, recomendamos primeiro dominar os fundamentos.