Welche Ausdrücke ein Compiler wirklich optimiert
Zusammenfassung
Ridiculous Fish untersucht mit konkretem Maschinencode, welche scheinbar teuren Berechnungen moderne Compiler vereinfachen und wo Annahmen scheitern. Optimierung ist nur dann korrekt, wenn sie alle beobachtbaren Sprachregeln bewahrt.
Ideen
- Konstante Ausdrücke können bereits während der Übersetzung vollständig verschwinden.
- Algebraische Vereinfachungen hängen von Sprache, Überlaufregeln und Gleitkommasemantik ab.
- Der erzeugte Assemblercode beantwortet Optimierungsfragen zuverlässiger als Intuition.
Einsichten
- Mikrooptimierungen altern schneller als lesbarer Code und belastbare Messungen.
Empfehlungen
- Prüfe Compilerbehauptungen mit optimiertem Assembler und realistischen Benchmarks.
- Schreibe zuerst klaren Code und optimiere nur gemessene Engpässe.
Referenzen
Links zur Originalquelle und zum Webarchiv öffnen einen neuen Tab.