Haben wir die Kunst der reinen Optimierung verloren?
Frühe Ingenieure arbeiteten mit winzigen Grenzen. Der Apollo Guidance Computer verfügte über nur 2 KB RAM. Jedes Bit zählte. Jeder CPU-Zyklus war entscheidend.
Heute verfügen wir über Gigabytes an Speicher. Wir lösen Probleme oft, indem wir einfach mehr Hardware hinzufügen. Wenn Code langsam oder schwerfällig ist, fügen wir mehr RAM hinzu. Diese Gewohnheit führt dazu, dass wir die Fähigkeit zur reinen Optimierung verlieren.
Man kann bessere Software schreiben, indem man über Einschränkungen nachdenkt.
Schauen Sie sich an, wie Sie eine große Textdatei in Python verarbeiten.
Der übliche Weg: Viele Entwickler lesen eine gesamte Datei auf einmal in den Speicher.
- Sie verwenden
f.readlines(). - Dies lädt jede Zeile in eine Liste in Ihren RAM.
- Wenn Ihre Datei 10 GB groß ist, benötigen Sie 10 GB RAM.
- Dieser Ansatz scheitert auf kleinen Servern oder Geräten mit begrenzten Ressourcen.
Der optimierte Weg: Verarbeiten Sie die Datei Zeile für Zeile.
- Sie iterieren direkt über das Datei-Objekt.
- Python liest eine Zeile, verarbeitet sie und geht zur nächsten über.
- Ihre Speicherauslastung bleibt niedrig und konstant.
- Es spielt keine Rolle, ob die Datei 1 MB oder 100 GB groß ist.
Der Unterschied liegt in der Ingenieursphilosophie.
Das Hinzufügen von mehr Ressourcen ist nur eine vorübergehende Lösung. Es führt zu fragiler Software. Die Nutzung von Einschränkungen als Leitlinie für Ihr Design schafft robuste Software.
Bei der Optimierung geht es nicht nur um Geschwindigkeit. Es geht darum, achtsam mit seinen Ressourcen umzugehen.
Wenn Sie Code schreiben, fragen Sie sich selbst:
- Wie viel Speicher verbraucht das?
- Wird das noch funktionieren, wenn die Daten zehnmal größer werden?
- Verlasse ich mich auf teure Hardware, um schlechten Code zu kaschieren?
Bessere Software entsteht durch Disziplin.
Quelle: https://dev.to/prabashanadev/have-we-lost-the-art-of-pure-optimization-31b9