cabal dist
rät von der Verwendung von -O2
ab, da es längere Kompilierzeiten erzeugt und das GHC-Handbuch sagt:
Momentan ist
-O2
wahrscheinlich nicht besser als-O
.
Ich weiß, dass ich die Bibliothek immer vergleichen kann, um zu sehen, ob -O2
eine bessere Leistung bringt, aber ich frage mich, ob jemand erklären könnte, was -O2
anders macht als -O
, damit ich eine Intuition dafür bekommen kann es wird wahrscheinlich keinen besseren Code produzieren.
-O2
führt die Konstruktorspezialisierung durch. Es gibt einige andere Optimierungen, die nur bei -O2 aktiviert sind, einschließlich -fliberate-case
, -fstatic-argument-transformation
,
Ich habe den Verdacht, dass -O2 jetzt immer besseren Code produziert, da diese Empfehlung etwa 10 Jahre zurückliegt.
Tags und Links optimization haskell ghc compiler-construction