A arte de escrever programas eficientes
A arte de escrever programas eficientes
Resumo:
Introdução
O livro «The Art of Writing Efficient Programs» (em tradução russa — «A arte de escrever programas eficientes») de autoria de Fiódor Pikus não é apenas mais um livro didático sobre C++. É um mergulho profundo no mundo do desempenho, otimização e decisões arquiteturais que transformam código comum em uma ferramenta altamente eficiente. Publicado em 2021 pela editora Packt, o livro de 446 páginas tornou-se um guia de referência para muitos desenvolvedores que buscam extrair o máximo do hardware moderno.
Fiódor Pikus é um especialista reconhecido na área de computação de alto desempenho, tendo trabalhado no Google e em outras gigantes de tecnologia. Sua experiência e abordagem prática para resolver problemas de desempenho tornam este livro único. Ao contrário de muitos trabalhos teóricos abstratos, Pikus oferece metodologias concretas e testadas na prática, apoiadas por exemplos em C++.
Sobre o que é este livro?
O livro é dedicado à arte de criar programas que funcionam da forma mais rápida e eficiente possível, utilizando os recursos do processador, memória e subsistema de entrada/saída com o máximo rendimento. O autor analisa sequencialmente os principais aspectos de desempenho, desde os fundamentos até técnicas avançadas.
Principais tópicos abordados no livro:
- Medição de desempenho: como fazer profiling de código corretamente, interpretar resultados e encontrar gargalos.
- Otimização de memória: memória cache, alinhamento de dados, localidade de referência, trabalho com memória dinâmica.
- Paralelismo e multithreading: uso eficiente de threads, sincronização, prevenção de condições de corrida e deadlocks.
- Otimização de algoritmos: escolha de estruturas de dados corretas, complexidade algorítmica e seu impacto no desempenho real.
- Vetorização e SIMD: uso de instruções do processador para processamento paralelo de dados.
- Trabalho com o compilador: como ajudar o compilador a gerar código mais rápido, flags de otimização, inlining.
- Projetar para desempenho: padrões arquiteturais que já incorporam alta velocidade de operação desde o início.
Para quem é este livro?
O livro é direcionado a desenvolvedores que já têm experiência em programação C++ (ou outra linguagem de sistema) e desejam passar para um novo nível — o nível de criação de aplicações verdadeiramente rápidas e eficientes. Será útil para:
- Desenvolvedores de jogos e engines gráficos.
- Engenheiros que trabalham com servidores de alta carga e bancos de dados.
- Especialistas em sistemas embarcados e IoT.
- Todos que escrevem código para cálculos financeiros, científicos ou de engenharia.
- Estudantes de cursos superiores em áreas técnicas que estudam programação de sistemas.
O que o leitor aprenderá?
Após a leitura do livro, o leitor será capaz de:
- Avaliar corretamente o desempenho do seu código usando profilers (perf, Valgrind, Google Benchmark).
- Entender como funciona a memória cache do processador e escrever código que a utilize ao máximo.
- Gerenciar memória de forma eficiente, evitando fragmentação e alocações desnecessárias.
- Escrever código multithread seguro e rápido, usando primitivas de sincronização modernas.
- Aplicar instruções SIMD para acelerar cálculos em 2 a 4 vezes sem perder a legibilidade do código.
- Escolher estruturas de dados ideais (std::vector vs std::list, tabelas hash, árvores) para a tarefa específica.
- Usar recursos do C++17/20 (por exemplo, std::optional, std::variant, constexpr) para melhorar o desempenho.
- Projetar a arquitetura da aplicação que já é orientada para alta velocidade de operação desde o início.
Pontos fortes do livro
O livro de Fiódor Pikus se destaca em relação a outras publicações sobre otimização devido a várias características-chave:<