Konzepterklärung
In dieser Lektion geht es nicht darum, Sie über Nacht zu einem Performance-Ingenieur zu machen. Es geht darum, ein gesundes Gespür zu entwickeln: Manche Codes erledigen dieselbe Aufgabe sauberer und schneller, und Sie sollten lernen, dies zu erkennen, ohne sich von winzigen Geschwindigkeitsunterschieden besessen zu machen. Viele Anfänger schreiben etwas, das funktioniert, und gehen dann davon aus, dass Performance ein mysteriöses Thema für später ist. Die Wahrheit ist einfacher. Sie beginnen, indem Sie praktische Fragen stellen: Wiederhole ich Arbeit? Verwende ich ein Tool, das Python bereits für mich optimiert hat? Messe ich das Ergebnis, anstatt zu raten? In dieser Lektion vergleichen Sie zwei Wege, dieselbe Summe zu berechnen. Eine Version verwendet eine manuelle Schleife. Die andere verwendet Pythons eingebaute Funktion `sum`. Beide sind korrekt. Ziel ist es zu sehen, wie kleine Designentscheidungen die Lesbarkeit und Laufzeit beeinflussen. Am Ende dieser Lektion werden Sie in der Lage sein: • die Laufzeit eines kleinen Skripts zu messen, ohne bei den Zahlen in Panik zu geraten, • zu erklären, warum eingebaute Tools oft eine bessere Standardoption sind, als alles manuell zu schreiben, • einen offensichtlichen Performance-Fehler zu erkennen: dieselbe Arbeit öfter als nötig zu erledigen. Warum das wichtig ist: Performance ist leichter zu lernen, wenn Sie sie als Beobachtung und nicht als Magie betrachten. Wenn Sie ein kleines Beispiel ruhig messen können, werden größere Performance-Themen später viel mehr Sinn ergeben.
Wo der Code hingehört
- Definieren Sie Farb- und Positionsvariablen oben.
- Erstellen Sie die Logik für das Zeichnen oder Platzieren von Formen in der Mitte.
- Rendern Sie die Ausgabe (Druck, Canvas, SVG oder gestylter Block) am Ende.
Befehlsreferenz
- Führen Sie das Skript mehr als einmal aus, bevor Sie das Ergebnis beurteilen; eine einzelne Zeitmessung kann irreführend sein.
- Vergleichen Sie Code, der dasselbe Problem löst, nicht zwei völlig unterschiedliche Aufgaben.
- Bevorzugen Sie eine eingebaute Funktion wie `sum()`, wenn sie den Code klarer macht und manuelle Arbeit reduziert.
- Messen Sie zuerst, dann optimieren Sie; das Raten über die Geschwindigkeit ist, wie Menschen Zeit verschwenden.
Schritt-für-Schritt-Anleitung
- Führen Sie die Datei einmal aus und notieren Sie, welche Version auf Ihrem Rechner schneller war.
- Ändern Sie `limit` auf eine kleinere Zahl wie `50_000`, dann auf eine größere Zahl wie `500_000`, und vergleichen Sie, wie sich die Zeiten verschieben.
- Sagen Sie vor jedem Lauf voraus, welche Version schneller sein wird und warum.
- Bearbeiten Sie `total_with_loop()`, um unnötige zusätzliche Arbeit innerhalb der Schleife zu erledigen, führen Sie es erneut aus und bemerken Sie, wie schnell sich kleine Ineffizienzen summieren.
- Schreiben Sie einen Satz, der den Unterschied zwischen korrektem Code und Code, der sowohl korrekt als auch effizient ist, erklärt.
Übungsaufgaben
- Ersetzen Sie `sum()` durch einen anderen Ansatz, wie einen Generatorausdruck oder `functools.reduce()`, und vergleichen Sie zuerst die Lesbarkeit, dann die Geschwindigkeit.
- Erklären Sie, warum das Drucken innerhalb des gemessenen Teils Ihre Messung weniger nützlich machen würde.
- Denken Sie an eine reale Funktion, bei der Performance wichtiger ist als üblich, z. B. das Verarbeiten vieler Zeilen, das Bereitstellen einer API oder das wiederholte Aktualisieren eines Spielstands.
Coding-Challenges
- Verwenden Sie die Formel der arithmetischen Reihe, um dieselbe Summe zu berechnen, und vergleichen Sie sie dann mit der Schleifen- und der eingebauten Version.
- Schreiben Sie eine kurze Notiz darüber, wann Sie mit der Optimierung aufhören und stattdessen die klarere Lösung akzeptieren sollten.
Kleine Übungsaufgaben
- Speichern Sie ein Laufergebnis in Ihren Notizen, um spätere Experimente vergleichen zu können.
- Kreisen Sie die Zeile im Skript ein, wo die Messung tatsächlich beginnt und endet.
- Löschen Sie absichtlich langsamen Testcode, nachdem Sie fertig sind, damit die endgültige Version sauber bleibt.
Häufiger Fehler
Mixing x and y axes or using wrong coordinate origin causes shapes to appear in unexpected places.
Mini-Challenge aus der Praxis
Draw one square, one triangle, and one circle, then move X marker 2 steps right and 1 step down.