Leistung von Go (Golang)-Anwendungen: Optimierung, Profiling und hochlastige Systeme
Leistung von Go (Golang)-Anwendungen: Optimierung, Profiling und hochlastige Systeme
Zusammenfassung:
Dieses Buch ist ein praktischer Leitfaden zur Erstellung schneller, effizienter und skalierbarer Anwendungen in der Sprache Go (Golang). Es richtet sich an Entwickler, die bereits mit den Grundlagen der Sprache vertraut sind und die nächste Stufe erreichen möchten, indem sie lernen, das Maximum aus jedem Prozessorkern und jedem Byte Speicher herauszuholen.
Im Gegensatz zu den meisten Lehrbüchern, die nur das Schreiben von Code lehren, konzentriert sich dieses Buch auf die Messung und Verbesserung der Leistung. Sie lernen nicht nur theoretische Konzepte kennen – Sie erlernen den Umgang mit professionellen Profiling- und Debugging-Tools, die Ingenieure bei Google, Uber und anderen Technologiegiganten einsetzen.
Was Sie in diesem Buch lernen werden:
- CPU- und Speicher-Profiling: Wie Sie Engpässe mit pprof, Flame Graphs und Trace-Analyse finden. Sie lernen, Profile zu lesen und zu verstehen, welcher Code bremst.
- Optimierung der Arbeit mit dem Garbage Collector (GC): Wie Sie die GC-Last reduzieren, Pausen verkleinern und „Stop-the-World“-Ereignisse vermeiden. Strategien zur Allokationsverwaltung und Objektpools.
- Nebenläufigkeit und Goroutinen: Effiziente Nutzung von Kanälen, Mutexen und atomaren Operationen. Wie Sie Datenrennen, Deadlocks und Goroutine-Leaks vermeiden.
- Benchmarks und Leistungstests: Wie Sie korrekte Benchmarks schreiben, Implementierungen vergleichen und Fehler bei Messungen vermeiden.
- Arbeit mit Speicher und Cache: Optimierung von Datenstrukturen, Feldausrichtung in Strukturen, Verwendung von Slices und Maps ohne überflüssige Allokationen.
- Netzwerk- und I/O-Operationen: Konfiguration von HTTP-Servern, Arbeit mit Datenbanken, effiziente Serialisierung (protobuf, msgpack) und Minimierung der Latenz.
Für wen dieses Buch geeignet ist:
- Go-Entwickler mit mindestens 1 Jahr Erfahrung, die schnellen Code für hochlastige Projekte schreiben möchten.
- DevOps- und SRE-Ingenieure, die verstehen müssen, wie Go-Anwendungen unter Last funktionieren.
- Technische Leiter, die Entscheidungen über die Mikroservices-Architektur treffen.
- Entwickler, die von anderen Sprachen (Python, Java, C++) wechseln und die Besonderheiten der Optimierung in Go erlernen möchten.
Das Buch ist nach dem Prinzip „vom Einfachen zum Komplexen“ aufgebaut: von grundlegenden Benchmarks bis zur tiefgehenden Analyse der Go-Runtime. Jedes Kapitel enthält reale Codebeispiele, die Sie sofort in Ihren eigenen Projekten anwenden können. Sie lernen nicht nur, bestehende Anwendungen zu beschleunigen, sondern auch neue Systeme von Grund auf leistungsorientiert zu entwerfen.
Nach der Lektüre dieses Buches werden Sie in der Lage sein:
- Die API-Antwortzeit um das 2- bis 3-fache zu verkürzen, ohne die Architektur zu ändern.
- Den Speicherverbrauch durch Optimierung von Datenstrukturen um 40-60 % zu senken.
- Code zu schreiben, der Mehrkernprozessoren effizient nutzt.
- Produktionsanwendungen sicher zu profilen, ohne die Leistung zu beeinträchtigen.
Dies ist kein Syntax-Nachschlagewerk – es ist ein Werkzeug für diejenigen, die ihre Go-Anwendungen zum Fliegen bringen wollen. Geeignet für Go-Versionen 1.20 und höher.