Bewertung:

Derzeit gibt es keine Leserbewertungen. Die Bewertung basiert auf 75 Stimmen.
The Art of Writing Efficient Programs: An advanced programmer's guide to efficient hardware utilization and compiler optimizations using C++ examples
Lernen Sie verschiedene Techniken zur Leistungsverbesserung kennen, z. B. Gleichzeitigkeit, sperrfreie Programmierung, atomare Operationen, Parallelität und Speicherverwaltung.
Hauptmerkmale:
⬤ Verstehen Sie die Grenzen moderner CPUs und deren Auswirkungen auf die Leistung.
⬤ Finden Sie heraus, wie Sie das Schreiben von ineffizientem Code vermeiden und die besten Optimierungen vom Compiler erhalten können.
⬤ Lernen Sie die Kompromisse und Kosten beim Schreiben von Hochleistungsprogrammen kennen.
Buchbeschreibung:
Die Zeiten, in denen sich die Leistung von selbst einstellte, sind vorbei. Bis vor kurzem wurden Programme von selbst schneller, wenn die CPUs aufgerüstet wurden, aber das ist nicht mehr der Fall. Die Taktfrequenz neuer Prozessoren hat fast ihren Höchststand erreicht. Neue Architekturen bringen zwar kleine Verbesserungen für bestehende Programme, aber das hilft nur wenig. Die Prozessoren werden zwar größer und leistungsfähiger, aber der größte Teil dieser neuen Leistung wird durch die erhöhte Anzahl von Rechenkernen und anderen "zusätzlichen" Recheneinheiten verbraucht. Um effiziente Software zu schreiben, muss man jetzt wissen, wie man programmiert, indem man die verfügbaren Rechenressourcen gut nutzt, und dieses Buch wird Ihnen zeigen, wie man das macht.
Das Buch behandelt alle wichtigen Aspekte des Schreibens effizienter Programme, wie z. B. die effiziente Nutzung von CPU-Ressourcen und Speicher, die Vermeidung unnötiger Berechnungen, die Messung der Leistung und den sinnvollen Einsatz von Gleichzeitigkeit und Multithreading. Sie lernen auch etwas über Compiler-Optimierungen und wie Sie die Programmiersprache (C)+) effizienter nutzen können. Schließlich werden Sie verstehen, wie sich Designentscheidungen auf die Leistung auswirken.
Am Ende dieses Buches werden Sie nicht nur genug Wissen über Prozessoren und Compiler haben, um effiziente Programme zu schreiben, sondern Sie werden auch verstehen, welche Techniken Sie verwenden und was Sie messen müssen, um die Leistung zu verbessern. Im Kern geht es in diesem Buch darum, zu lernen, wie man lernt.
Was Sie lernen werden:
⬤ Entdecken Sie, wie Sie die Hardware-Ressourcen in Ihren Programmen effektiv nutzen können.
⬤ Verstehen Sie die Beziehung zwischen Speicheranordnung und Speicherbarrieren.
⬤ Machen Sie sich mit den Leistungsauswirkungen verschiedener Datenstrukturen und -organisationen vertraut.
⬤ Bewerten Sie die Leistungsauswirkungen von gleichzeitigen Speicherzugriffen und wie Sie diese minimieren können.
⬤ Entdecken Sie, wann Sie sperrfreie Programmiertechniken verwenden sollten und wann nicht.
⬤ Erforschen Sie verschiedene Möglichkeiten zur Verbesserung der Wirksamkeit von Compiler-Optimierungen.
⬤ Entwerfen Sie APIs für nebenläufige Datenstrukturen und Hochleistungsdatenstrukturen, um Ineffizienzen zu vermeiden.
Für wen dieses Buch gedacht ist:
Dieses Buch richtet sich an erfahrene Entwickler und Programmierer, die an leistungskritischen Projekten arbeiten und verschiedene Techniken zur Verbesserung der Leistung ihres Codes erlernen möchten. Programmierer, die in den Bereichen algorithmischer Handel, Spiele, Bioinformatik, Computational Genomics oder Computational Fluid Dynamics tätig sind, können aus diesem Buch verschiedene Techniken lernen und sie in ihrem Arbeitsbereich anwenden.
Obwohl in diesem Buch die Sprache C++ verwendet wird, können die im Buch demonstrierten Konzepte leicht auf andere kompilierte Sprachen wie C, Java, Rust, Go und andere übertragen oder angewendet werden.