Флаги оптимизации компилятора Visual C ++: разница между / O2 и / Ot - PullRequest
7 голосов
/ 15 мая 2011

В чем разница между флагом /Ot («код быстрого выбора») и флагом /O2 («максимизировать скорость»)?

(то же самое с /Os и /O1.)

Ответы [ 3 ]

6 голосов
/ 15 мая 2011

/ 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.

Martyn

2 голосов
/ 15 мая 2011

См. Статью / O1, / O2 (минимизировать размер, максимизировать скорость) на MSDN.

В нем говорится, что /O2 эквивалентно:

/Og /Oi /Ot /Oy /Ob2 /Gs /GF /Gy

Итак, /O2 включает все то, что делает /Ot, и еще кое-что.То же самое для /O1 против /Os, но для размера на этот раз.

0 голосов
/ 15 мая 2011

Без разницы./Ot является частью /O2 оптимизации.

http://msdn.microsoft.com/en-us/library/f9534wye.aspx

...