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.
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
- Optimierung ist nur dann korrekt, wenn sie alle beobachtbaren Sprachregeln bewahrt.
- Mikrooptimierungen altern schneller als lesbarer Code und belastbare Messungen.
Fakten
- Der Originalbeitrag wurde am 23. Juli 2010 auf HN aufgegriffen.
- Die Auswahl vertritt den Monat 07/2010.
- Der verlinkte Originalbeitrag ist weiterhin unmittelbar erreichbar.
Empfehlungen
- Prüfe Compilerbehauptungen mit optimiertem Assembler und realistischen Benchmarks.
- Schreibe zuerst klaren Code und optimiere nur gemessene Engpässe.
Referenzen
Der Link zur Originalquelle öffnet einen neuen Tab.