Leistung von C++-Anwendungen
Leistung von C++-Anwendungen
Zusammenfassung:
Das Buch „Leistung von C++-Anwendungen“ ist ein praktischer Leitfaden für Entwickler, die lernen möchten, schnellen, effizienten und skalierbaren Code in C++ zu schreiben. Im Gegensatz zu akademischen Lehrbüchern konzentriert sich dieses Buch auf reale Aufgaben: wie man Engpässe findet, wie man die Programmausführung beschleunigt, ohne die Lesbarkeit zu beeinträchtigen, und wie man die Anwendung für den Betrieb unter hoher Last vorbereitet.
Worum geht es in diesem Buch?
- Profiling und Benchmarking: Sie erfahren, wie Sie die Leistung mit Tools (perf, Valgrind, Google Benchmark) korrekt messen, Ergebnisse interpretieren und „Flaschenhälse“ finden.
- Arbeit mit Speicher: Effiziente Speicherverwaltung, Cache-Fehltreffer, Allokatoren, Move-Semantik und Vermeidung von Kopien. Wir analysieren, wie Fragmentierung reduziert und der Datenzugriff beschleunigt werden kann.
- Algorithmen und Datenstrukturen: Wie wählt man den richtigen Container (std::vector vs std::list, flat_map, kleine Optimierungen), wann verwendet man Hash-Tabellen und wann Bäume.
- Multithreading und Nebenläufigkeit: Parallele Algorithmen, Synchronisation (Mutexe, Atomik, Lock-freie Strukturen), Thread-Pools und Arbeit mit std::async.
- Compiler-Optimierung: Wichtige Compiler-Flags (O2, O3, LTO), Verständnis der Assembler-Ausgabe, Inlining und Vektorisierung.
- Reale Beispiele: Analyse von Code aus hochlastigen Systemen: Spiele-Engines, Finanzserver, Big-Data-Verarbeitung.
Für wen ist dieses Buch?
- C++-Entwickler mit mindestens 1 Jahr Erfahrung, die auf Senior-Niveau aufsteigen möchten.
- Ingenieure, die an latenzempfindlichen Systemen arbeiten (Handelsplattformen, Datenbanken, Spiele).
- Diejenigen, die sich auf Vorstellungsgespräche bei FAANG oder Produktunternehmen vorbereiten, die ein tiefes Verständnis der Leistung erfordern.
Was werden Sie lernen?
- Wie man Code um das 2- bis 10-fache beschleunigt, ohne die Architektur zu ändern.
- Warum „offensichtliche“ Optimierungen oft schaden und wie man dies vermeidet.
- Wie man Systeme entwirft, die bei steigender Last schnell bleiben.
- Moderne C++17/20-Praktiken (std::optional, std::variant, Konzepte) zur Leistungssteigerung.
Das Buch ist in lebendiger Sprache geschrieben, enthält viele Listings, Grafiken und praktische Aufgaben. Nach der Lektüre werden Sie nicht nur schnellen Code schreiben, sondern Ihre Entscheidungen auch argumentativ gegenüber Kollegen verteidigen können.
Empfehlungen
JavaScript (Node.js) und Datenbanken: Ein praktischer Leitfaden
PHP und Datenbanken: Ein praktischer Leitfaden
Professionelles C# (.NET): fortgeschrittene Techniken
JavaScript (Node.js) und Kubernetes: Bereitstellung und Orchestrierung
Programmierung: Prinzipien und Praxis mit C++
Concurrency in C# Cookbook (Rezepte für parallele Programmierung in C#)