Home >>> Kurse >>> Spezialthemen >>> Optimierung

Kundenstimmen


Very crisp and precise knowledge of the subject /content. Very good and highly recommended for all Python beginners.

Dicken George System Development Engineer, Soitec Solar GmbH über den Kurs "Python for Programmers and Python for Scientists and Engineers" mehr dazu...


I really liked the training. It matched the expectations of a student. This training is amazing.

Deepti über das Tutorial "Iterators, Generators and Decorators auf der EuroPython 2014" mehr dazu...


Guter Kurs. Man kommt auch ohne Python-Kenntnisse sehr schnell mit der Bedienung zurecht.

Daniel Fuchs, GIGATRONIK Ingolstadt GmbH, über den Kurs "Python für Programmierer" mehr dazu...


Mike is an outstanding teacher ... I will look for his classes in the future.

Jennifer Trasti, Software/Systems Engineer, Sandia National Laboratories, Albuquerque, NM, USA mehr dazu...


Guter Kurs. Der Einstieg wird sehr kompetent vermittelt. Nach Bedarf werden aus dem breiten Themenangebot Schwerpunkte gewählt und vertieft.

Helmut Dittrich, Geschäftsführer DiFis-Engineering UG, arrow-fix.com, über den Kurs "Einstieg in Django" mehr dazu...


Modul - Optimierung von Pythonprogrammen

Termine für offene Kurse

Kurs nur als In-Haus-Schulung verfügbar. Bitte fragen Sie unter info@python-academy.de nach.

Motivation

Python ist eine interpretierte Sprache; Pythonquelltexte werden zu portablem Bytecode übersetzt. Dieses Konzept ermöglicht, in Verbindung mit den anderen Gestaltungsprinzipen der Sprache, viele der Vorteile von Python gegenüber anderen Sprachen. Die Ausführungsgeschwindigkeit von Python-Programmen kann aber für bestimmte Anwendungen wesentlich geringer sein als für kompilierte Programme. Optimierung ermöglicht oft eine wesentliche Verbesserung der Performance von Python-Programmen.

Kursinhalt

Richtlinien für die Optimierung

Python-Programme sind nicht grundsätzlich langsam. Im Gegenteil: für viele Anwendungsfälle ist die Ausführungsgeschwindigkeit vollkommen ausreichend. Die grundlegende Frage ist also, ob das Programm den Anwendungszweck erfüllt. Weiterhin muss klar sein, ob nicht andere Faktoren wie z.B. Datenbankzugriffe oder Netzwerkverbindungen entscheidend für die Geschwindigkeit sind.

Der Kurs vermittelt wichtige Richtlinien für die Optimierung.

Profiling

Mit Profiling kann man die Stellen in einem Programm finden, die die meiste Zeit in Anspruch nehmen.

Im Kurs werden die builtin-Module profile und timeit vorgestellt. Mit Beispielen wird gezeigt, wie diese Module eingesetzt werden können. Wir messen die CPU-Zeit und den Arbeitsspeicherverbrauch. Teilnehmer können gern ihre eigenen Programme im Kurs "profilen".

Algorithmen und Anti-Pattern

Typischerweise sind die größten Gewinne bei der Reduzierung der Laufzeit durch algorithmische Änderungen zu erreichen.

Es werden typische Algorithmen aufgezeigt, die in Python besonders schnell oder langsam sind. Die richtige Nutzung der Python-Datenstrukturen werden ebenso behandelt wie der Einsatz der funktionalen Merkmale von Python.

Geschwindigkeitsmessung

Es ist nicht einfach zu messen wie schnell ein Programm wirklich ist. Wir schauen uns Lösungen für dieses Problem in Python an. Für die folgenden Kursthemen wird ein rechenzeitintensives Beispiel genutzt.

Psyco

Psyco ist ein so genannter "just-in-time-complier" (JIT), der es ermöglicht Teile des eigentlichen Bytecodes in Maschinencode zu übersetzen und damit dessen Ausführungsgeschwindigkeit u.U. beträchtlich zu erhöhen.

Die unterschiedlichen Möglichkeiten der Nutzung von Psyco werden mit Beispielen erläutert. Teilnehmer werden ermutigt ihre eigenen Programme im Kurs mit Psyco zu beschleunigen.

Numerische Berechnungen mit numpy

Numerischen Berechnungen mit großen Listen sind in Python vergleichsweise langsam, da durch die dynamische Typisierung viel Performance verloren gehen kann. Mit numpy steht ein Modul für die effiziente Arbeit mit Arrays zur Verfügung. Die Funktionalität und Nutzungsweise ist an MATLAB angelehnt.

Die grundlegenden Möglichkeiten der Arbeiten mit numpy werden dargestellt.

Nutzung mehrerer CPUs mit pyprocessing/multiprocessing

Das Modul pyprocessing ist, umbenannt in multiprocessing, Teil der Standardbibliothek von 2.6. Es erlaubt die Rechenkapazität mehrerer CPUs zu nutzen. Wir sehen uns das Modul kurz an und wenden es auf unser Beispiel an.

Ausblick auf die Erweiterung von Python mit anderen Sprachen

Die Ausführungsgeschwindigkeit von Python-Programmen kann durch Erweiterungen in anderen Sprachen erhöht werden. Wenn das Modul Python-Erweiterungen in anderen Sprachen nicht mitgebucht wurde, wird ein kurzer Überblick über die grundsätzlichen Möglichkeiten der Erweiterung gegeben.

Moduldauer

1 Tag

Ablauf

Die Teilnehmer können alle Arbeitsschritte direkt auf ihrem Computer nachvollziehen. Am Ende jedes Themas können sie das erworbene Wissen durch praktische Übungen festigen.

Kursmaterialien

Jeder Teilnehmer erhält ausführliche Kursunterlagen mit ausformulierten Beschreibungen der Kursinhalte und alle verwendeten Quelltexte in elektronischer Form.

Zielgruppe

Programmierer mit Pythongrundkenntnissen oder Kombination mit Grundkursen (siehe Empfohlene Modul-Kombinationen).

Empfohlene Modul-Kombinationen

Das Modul Python-Erweiterungen in anderen Sprachen stellt eine inhaltliche Ergänzung zu diesem Modul dar.

Im Kurs Python für Wissenschaftler und Ingenieure werden ebenfalls relevante Themen, die zum Inhalt dieses Moduls passen behandelt.

Das Modul kann mit den Kursen Python für Nichtprogrammierer oder Python für Programmierer kombiniert werden.

[@pyacademy folgen]

Die Python Academy ist Sponsor der PyConIE 2018.

[PyConIE 2018]

Die Python Academy ist Sponsor der PyCon.DE 2018.

[PyCon.DE  2018]

Die Python Academy ist Sponsor der PyCon Spain 2018.

[PyCon ES 2018]

Die Python Academy ist Sponsor der PyCon Ghana 2018.

[PyCon GH 2018]

Die Python Academy ist Sponsor der EuroPython 2018.

[EuroPython 2018]

Die Python Academy ist Sponsor der DjangCon Europe 2018.

[DjangCon Europe 2018]

Die Python Academy ist Sponsor der PyCon US 2018.

[PyCon US 2018]

Die Python Academy ist Sponsor der PyConIE 2017.

[PyConIE 2017]

Die Python Academy ist Sponsor der EuroPython 2017.

[EuroPython 2017]

Die Python Academy ist Sponsor der PyCon US 2017.

[PyCon US 2017]

Die Python Academy ist Sponsor des PythonCamp Köln 2017.

[PythonCamp 2017]

Die Python Academy ist Sponsor der Django Girls Leipzig 2016

[Django Girls Leipzig 2016]

Die Python Academy ist Sponsor der PyCon DE 2016.

[PyCon DE 2016]

Die Python Academy ist Sponsor der PyCon Ireland 2016.

[PyCon IE 2016]

Die Python Academy ist Sponsor der EuroSciPy 2016.

[EuroSciPy 2016]

Die Python Academy ist Sponsor der PyCon US 2016.

[PyCon US 2016]

Die Python Academy ist Sponsor der PyData Berlin 2016.

[PyData Berlin 2016]

Die Python Academy ist Sponsor der PyCon Sweden 2016.

[PyCon SE 2016]

Die Python Academy ist Sponsor der Python Unconference 2015.

[PyUnconf 2015]

Die Python Academy ist Sponsor der EuroSciPy 2015.

[EuroSciPy 2015]

Die Python Academy ist Sponsor der EuroPython 2015.

[EuroPython 2015]

Die Python Academy ist Sponsor der PyData Berlin 2015.

[PyData Berlin 2015]

Die Python Academy ist Sponsor der PyCon Montréal 2015.

[PyCon Montréal 2015]

Die Python Academy ist Sponsor des Python BarCamp Köln 2015.

[Python BarCamp 2015]https://www.euroscipy.org/2016/

Die Python Academy ist Sponsor der Chemnitzer Linux-Tage 2015.

Chemnitzer Linux-Tage 2015 - 21. und 22. März 2015

Die Python Academy ist Sponsor der Django Girls Wroclaw 2015.

[Django Girls Wroclaw 2015]

Die Python Academy ist Sponsor der PyCon Ireland 2014.

[PyCon Ireland 2014]

Die Python Academy ist Sponsor der EuroSciPy 2014.

[EuroSciPy 2014]

Die Python Academy ist Sponsor der PyData London 2014.

[PyData London 2014]

Die Python Academy ist Sponsor der EuroPython 2014.

[EuroPython 2014]

Die Python Academy ist Sponsor der PyCon 2014 Montréal.

[PyCon 2014 Montréal]

Die Python Academy ist Sponsor des Python BarCamp Köln 2014.

[Python BarCamp 2014]

Die Python Academy ist Sponsor der PyConDE 2013.

[PyCon DE 2013]

Die Python Academy ist Sponsor der EuroPython 2013.

[EuroPython 2013]

Die Python Academy ist Sponsor der PyCon US 2013.

[PyCon US 2013]

Die Python Academy ist Sponsor der EuroSciPy 2013.

[EuroSciPy 2013]

Die Python Academy ist Sponsor der PyConPL 2012.

[PyCon PL 2012]