Desempenho de Aplicações C++
Desempenho de Aplicações C++
Resumo:
O livro "Desempenho de Aplicações C++" é um guia prático para desenvolvedores que desejam aprender a escrever código C++ rápido, eficiente e escalável. Ao contrário dos livros acadêmicos, este livro foca em problemas reais: como encontrar gargalos, como acelerar a execução do programa sem perder legibilidade e como preparar a aplicação para operar sob alta carga.
Sobre o que é este livro?
- Profiling e Benchmarking: Você aprenderá a medir corretamente o desempenho usando ferramentas (perf, Valgrind, Google Benchmark), interpretar resultados e encontrar "gargalos".
- Gerenciamento de Memória: Gerenciamento eficiente de memória, cache misses, alocadores, move semantics e evitar cópias. Analisaremos como reduzir a fragmentação e acelerar o acesso aos dados.
- Algoritmos e Estruturas de Dados: Como escolher o contêiner correto (std::vector vs std::list, flat_map, pequenas otimizações), quando usar tabelas hash e quando usar árvores.
- Multithreading e Concorrência: Algoritmos paralelos, sincronização (mutexes, atômicos, estruturas lock-free), pools de threads e trabalho com std::async.
- Otimização do Compilador: Flags de compilação essenciais (O2, O3, LTO), compreensão da saída do assembly, inlining e vetorização.
- Exemplos Reais: Análise de código de sistemas de alta carga: motores de jogos, servidores financeiros, processamento de grandes dados.
Para quem é este livro?
- Desenvolvedores C++ com experiência de 1 ano ou mais que desejam avançar para o nível sênior.
- Engenheiros que trabalham com sistemas sensíveis à latência (plataformas de negociação, bancos de dados, jogos).
- Aqueles que se preparam para entrevistas em FAANG ou empresas de produto que exigem profundo conhecimento de desempenho.
O que você aprenderá?
- Como acelerar o código em 2 a 10 vezes sem alterar a arquitetura.
- Por que otimizações "óbvias" muitas vezes prejudicam e como evitar isso.
- Como projetar sistemas que permanecem rápidos sob aumento de carga.
- Práticas modernas do C++17/20 (std::optional, std::variant, conceitos) para melhorar o desempenho.
O livro é escrito em linguagem clara, contém muitos trechos de código, gráficos e exercícios práticos. Após a leitura, você será capaz não apenas de escrever código rápido, mas também de defender suas decisões de forma fundamentada perante seus colegas.