bk99.de entertain the web since 1997

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

Originalbeitrag lesen →