web-dev-qa-db-ja.com

rustcの最適化レベル `-Os`および` -Oz`は何をしますか?

実行中rustc -C helpショー(とりわけ):

-C opt-level=val       -- optimize with possible levels 0-3, s, or z

レベル0から3はかなり直感的だと思います。レベルが高いほど、より積極的な最適化が実行されます。しかし、sおよびzオプションが何をしているのか私には手がかりがなく、Rustに関連するそれらの情報を見つけることができませんでした。

26

in Rust issue で説明されているように、混乱しているのはあなただけではないようです。Clangと同じパターンに従っているようです:

  • Osコンパイル時にサイズを最適化するため。
  • Ozさらにサイズを最適化します。
17
Englund

Rustのソースコードの these および these 行を見ると、sはサイズの最適化を意味し、zは最適化の意味を持っていると言えますもう少しサイズ。

すべての最適化はLLVMコード生成エンジンによって実行されているようです。

12
red75prime