Hochleistungs-Python
Hochleistungs-Python
Zusammenfassung:
Einleitung
Das Buch „High Performance Python“ (auf Deutsch: „Hochleistungs-Python“) von den Autoren Micha Gorelick und Ian Ozsvald ist ein praktischer Leitfaden zur Optimierung von Python-Code, erschienen im Jahr 2020 (zweite Auflage). In einer Welt, in der Python oft wegen seiner Geschwindigkeit kritisiert wird, beweist dieses Buch: Mit den richtigen Werkzeugen und Ansätzen kann Python nicht nur bequem, sondern auch schnell sein. Der Umfang beträgt 464 Seiten, was eine detaillierte Behandlung sowohl grundlegender Konzepte als auch fortgeschrittener Techniken ermöglicht.
Worum geht es in dem Buch
Das Buch widmet sich der Steigerung der Leistung von Python-Anwendungen. Die Autoren beginnen mit den Grundlagen: Wie man die Geschwindigkeit von Code mit Hilfe von Profiling (cProfile, line_profiler, memory_profiler) misst. Dann gehen sie zu praktischen Methoden der Beschleunigung über: Nutzung von Datenstrukturen, Vektorisierung mit NumPy, Kompilierung mit Cython und Numba, Parallelität und Asynchronität (asyncio, multiprocessing, threading), Arbeit mit GPUs (CUDA) und verteiltes Rechnen. Besonderes Augenmerk liegt auf der Arbeit mit großen Datenmengen und der Optimierung von Ein-/Ausgabe.
Für wen ist dieses Buch
Das Buch richtet sich an Python-Entwickler mittleren und fortgeschrittenen Niveaus, die bereits mit den Grundlagen der Sprache vertraut sind und ihre Projekte auf ein neues Leistungsniveau heben möchten. Es wird nützlich sein für:
- Data Scientists und Machine-Learning-Ingenieure, die mit großen Datenmengen arbeiten;
- Backend-Entwickler, die hochlastige Dienste erstellen;
- Systemprogrammierer, die Engpässe im Code optimieren möchten;
- Studenten und Forscher, die Berechnungen beschleunigen müssen.
Was der Leser lernen wird
Nach der Lektüre wird der Leser in der Lage sein:
- Code zu profilieren und Engpässe mit line_profiler, memory_profiler und Flame Graphs zu finden;
- Listen, Dictionaries, Sets und andere Datenstrukturen effizient zu nutzen;
- NumPy zur Vektorisierung von Operationen und zur 10- bis 100-fachen Beschleunigung einzusetzen;
- Kritische Codeabschnitte mit Cython und Numba zu kompilieren;
- Multithreading und Multiprocessing zu implementieren und Blockaden zu vermeiden;
- asyncio für asynchrone Ein-/Ausgabe zu verwenden;
- Mit GPUs über CUDA (PyCUDA, Numba) für parallele Berechnungen zu arbeiten;
- Die Arbeit mit Festplatte und Netzwerk zu optimieren (Pufferung, mmap, Komprimierung);
- Verteilte Systeme mit Dask und Spark zu entwerfen.
Stärken
Der Hauptvorteil des Buches ist seine praktische Ausrichtung. Jedes Kapitel enthält reale Beispiele, Leistungsmessungen und Vergleiche von Ansätzen. Die Autoren liefern nicht nur Theorie, sondern zeigen, wie man die Wirkung einer Optimierung misst. Die zweite Auflage (2020) wurde aktualisiert: Abschnitte zu asyncio, Numba, Dask wurden hinzugefügt, und die Beispiele für Python 3.8+ wurden verbessert. Das Buch ist in einer lebendigen Sprache geschrieben, komplexe Konzepte werden durch Metaphern und Visualisierungen erklärt. Besonders hervorzuheben ist das Kapitel über Profiling – es bietet eine klare Methodik, die auf jedes Projekt angewendet werden kann.
Empfehlung
Ich empfehle das Buch allen, die auf Leistungsprobleme in Python gestoßen sind und diese systematisch angehen möchten. Es wird sowohl für Anfänger in der Optimierung (dank der einführenden Kapitel) als auch für erfahrene Entwickler nützlich sein, die moderne Werkzeuge (Numba, Dask, asyncio) erlernen möchten. Wenn Sie in Python programmieren und über Geschwindigkeit nachdenken – dieses Buch wird zu einem unverzichtbaren Nachschlagewerk.
Empfehlungen
DevOps für TypeScript-Entwickler: Vom Monolithen zu Microservices
API-Entwicklung mit Kotlin: Von den Grundlagen bis zu Microservices
Asynchrones Java: Das vollständige Handbuch
Entwurfsmuster in Java
Asynchrones JavaScript (Node.js): Vollständiger Leitfaden
Leistungsstarke Konsolenanwendungen mit Go