Флаги оптимизации компилятора Visual C++: разница между /O2 и /Ot
В чем разница между /Ot
флаг ("favor fast code") и /O2
флаг ("максимальная скорость")?
(Дитто с /Os
и /O1
.)
3 ответов
/O1 и /O2 связывают вместе несколько вариантов, направленных на большую цель. Таким образом, /O1 делает несколько вариантов генерации кода, которые благоприятствуют размеру; /O2 делает то же самое и благоприятствует скорости.
/O1 включает в себя /Os, а также другие параметры. /O2 включает в себя /Ot, а также другие параметры. Некоторые оптимизации разрешены как /O1, так и /O2. И, в зависимости от поведения подкачки вашей программы, /O1 (размер) может привести к более быстрой скорости, чем /O2, если код подкачки будет доминировать над вашим perf стоимость выполнения инструкции.
хороший краткий обзор влияния /O1 и / O2 в VC++ 2010 здесь
http://msdn.microsoft.com/en-us/library/8f8h5cxt.aspx
и включает ссылки для других версий VC.
Мартын
посмотреть / O1, / O2 (Уменьшите Размер, Увеличьте Скорость) статья в MSDN.
в нем говорится, что /O2
эквивалентно:
/Og /Oi /Ot /Oy /Ob2 /Gs /GF /Gy
так /O2
включает все, что /Ot
делает, и еще несколько. То же самое для /O1
и /Os
, но и на этот раз.