В чем разница между флагом /Ot
("предпочтение быстрого кода") и флагом /O2
("максимальная скорость")?
(То же самое с /Os
и /O1
.)
В чем разница между флагом /Ot
("предпочтение быстрого кода") и флагом /O2
("максимальная скорость")?
(То же самое с /Os
и /O1
.)
/O1 и /O2 объединяют несколько вариантов, направленных на достижение более крупной цели. Таким образом, /O1 делает несколько вариантов генерации кода, которые благоприятствуют размеру; /O2 делает то же самое и предпочитает скорость.
/O1 включает /Os, а также другие параметры. /O2 включает /Ot, а также другие параметры. Некоторые оптимизации включаются как /O1, так и /O2. И, в зависимости от поведения подкачки вашей программы, /O1 (размер) может привести к более высокой скорости, чем /O2, если код подкачки будет доминировать над вашей производительностью над стоимостью выполнения инструкций.
Хороший краткий обзор влияния /O1 и /O2 в VC++ 2010 находится здесь.
http://msdn.microsoft.com/en-us/library/8f8h5cxt.aspx
и включает ссылки на другие версии VC.
Мартин
/O1
с /Ot
? Он предпочитает размер или скорость?
- person user541686; 15.05.2011
См. статью /O1, /O2 (минимальный размер, максимальная скорость). в MSDN.
В нем указано, что /O2
эквивалентно:
/Og /Oi /Ot /Oy /Ob2 /Gs /GF /Gy
Таким образом, /O2
включает все то же, что и /Ot
, и даже больше. То же самое для /O1
и /Os
, но на этот раз для размера.
Нет разницы. /Ot
является частью оптимизации /O2
.
http://msdn.microsoft.com/en-us/library/f9534wye.aspx