/Og
(Globální optimalizace)
Zastaralé Poskytuje místní a globální optimalizace, automatické přidělování registru a optimalizaci smyčky. Doporučujeme místo toho použít /O1
buď (minimalizovat velikost), nebo /O2
(maximalizovat rychlost).
Syntaxe
/Og
Poznámky
/Og
je zastaralý. Tyto optimalizace jsou teď ve výchozím nastavení povolené, pokud jsou povoleny všechny optimalizace. Další informace o optimalizacích naleznete v tématu /O1
, /O2
(minimalizace velikosti, maximalizace rychlosti) nebo/Ox
(povolení většiny optimalizací rychlosti).
Následující optimalizace jsou k dispozici v části /Og
:
Eliminace místních a globálních běžných dílčích výrazů
V této optimalizaci se hodnota společného dílčího výrazu vypočítá jednou. V následujícím příkladu platí, že pokud se hodnoty
b
tří výrazů nezměníc
, kompilátor může přiřadit výpočetb + c
dočasné proměnné a tuto proměnnou použít prob + c
:a = b + c; d = b + c; e = b + c;
Pro místní běžnou optimalizaci dílčích výrazů kompilátor zkoumá krátké části kódu pro běžné dílčí výrazy. Pro globální běžnou optimalizaci dílčích výrazů kompilátor prohledává celé funkce pro běžné dílčí výrazy.
Automatické přidělení registru
Tato optimalizace umožňuje kompilátoru ukládat často používané proměnné a dílčí výrazy v registrech. Klíčové
register
slovo se ve výchozím nastavení ignoruje a způsobí diagnostiku pod/std:c++17
nebo novějším.Optimalizace smyčky
Tato optimalizace odebere z těla smyčky invariantní dílčí výrazy. Optimální smyčka obsahuje pouze výrazy, jejichž hodnoty se mění při každém spuštění smyčky. V následujícím příkladu se výraz
x + y
nezmění v textu smyčky:i = -100; while( i < 0 ) { i += x + y; }
Po optimalizaci se vypočítá jednou místo pokaždé,
x + y
když se smyčka spustí:i = -100; t = x + y; while( i < 0 ) { i += t; }
Optimalizace smyčky je mnohem efektivnější, když kompilátor nemůže předpokládat žádné aliasy, které nastavíte pomocí
__restrict
,noalias
neborestrict
.Poznámka:
Globální optimalizaci můžete povolit nebo zakázat na základě funkce pomocí direktivy
optimize
g
pragma společně s možností.
Související informace najdete v tématech /Oi
(Generování vnitřních funkcí) a/Ox
(povolení většiny optimalizací rychlosti).
Nastavení tohoto parametru kompilátoru ve vývojovém prostředí Visual Studio
Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.
Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.
Do pole Další možnosti zadejte možnost kompilátoru.
Programové nastavení tohoto parametru kompilátoru
- Viz třída AdditionalOptions.