Подтвердить что ты не робот

Что делают уровни оптимизации `-Os` и` -Oz` в rustc?

Выполнение rustc -C help показывает (между прочим):

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

Уровни от 0 до 3 довольно интуитивно понятны, я думаю: чем выше уровень, тем более агрессивная оптимизация будет выполнена. Однако я не знаю, что делают параметры s и z, и я не мог найти информацию о них, относящуюся к Rust.

4b9b3361

Ответ 1

Кажется, что вы не единственная путаница, как описано в проблеме Rust. Кажется, что он соответствует той же схеме, что и Clang:

  • Os Для оптимизации размера при компиляции.
  • Oz Для еще большей оптимизации размера.

Ответ 2

Рассматривая эти и эти строки в Исходный код ржавчины, я могу сказать, что s означает оптимизацию для размера, а z означает оптимизацию для размера еще немного.

Все оптимизации, по-видимому, выполняются механизмом генерации кода LLVM.